HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 ファイル一覧 検索 過去ログ

■14205 / 9階層)  [英単語] を単語単位で検索・絞込する方法
□投稿者/ ONnoji -(2024/03/03(Sun) 11:57:53)
    例文にはピリオド( . )がありませんでしたので対応しませんでしたが、

    もしも、

    ・フォースを使え。感じるのだ。 Use the Force. Feel it.

    ・フォースと共にあらんことを。 May the Force be with you.

    のような例文の場合、文末の Force it you が見つかりません。

    もしも。必要ならば以下のように改修してください。


    手続き定義開始 prcString検索実行( 文字列 &fieldName, 文字列 &string, 文字列 &parameter, 整数 &mode, 整数 &searchByWord )
     変数宣言 自動,文字列{ &icon, &title = "prcString検索実行( )", &msg }
     変数宣言 自動,文字列{ &expression, &ankWQ = #jis( #hex("22") ), &knjWQ = #jis( #hex("2149") ), &asterisk = #jis( #hex("2A") ) }
     変数宣言 自動,文字列{ &macro, &action, &order }
     変数宣言 自動,整数 { &status, &return }
     変数宣言 自動,文字列{ &orgString } /* 2015.06.01 */
     変数宣言 自動,文字列{ &chrList = "{,},`,~,|" } /* 2019.05.21 */
     変数宣言 自動,文字列{ &character }       /* 2019.05.21 */

     変数宣言 自動,文字列{ &SP = #jis( #hex("20") ), &knjSP = #jis( #hex("2121") ) }
     変数宣言 自動,文字列{ &commaAnk = #jis( #hex("2C") ) }
     変数宣言 自動,文字列{ &dotAnk  = #jis( #hex("2E") ) } /* 2024.03.03 */

     変数宣言 自動,文字列{ &traceMsg = &title }
     変数宣言 自動,整数 { &traceON }

     ** 2024.02.17 utx_list3.kev / prcString検索実行 より流用

     **&traceON = 1
     条件 ( &traceON ) トレース出力 &traceMsg + "を実行開始しました"

     &order   = #cond( &mode, ":E", 1, #u )
     &action   = #cond( &parameter = "次行", "∨, ", &parameter = "前行", "∧, ", 1, #u )
     &orgString = &string /* 2015.06.01 */
     &character = &string

     条件 ( &traceON ) トレース出力 "if ( .not &searchByWord ) … " + #str( .not &searchByWord )
     if ( .not &searchByWord )

      if ( #対応番号( &chrList, &character ) = 0 ) /* 2019.05.21 */

       &string   = #文字置換( &string, &knjWQ, &knjWQ + &knjWQ )
       &string   = #文字置換( &string, &ankWQ, &ankWQ + &ankWQ )
       &expression = &asterisk + &ankWQ + &string + &ankWQ + &asterisk + &order
      else

       ** 単一文字の {, }, `, ~, | ならば
       if ( &mode ) /* 単一文字の {, }, `, ~, | を拡張辞書順で検索するとNG */

        &expression = "#文字位置( #半角([単語]), " + &ankWQ + &character + &ankWQ + ") <> 0"
       else

        &expression = &asterisk + &ankWQ + &string + &ankWQ + &asterisk /* 拡張辞書順でなければOK */
       end
      end

      if ( &parameter = "絞り込み" )
       &macro = "絞り込み " + "&fieldName_&expression, 終了状態 = &status"
      else
       &macro = "検索 " + &action + "&fieldName_&expression, 終了状態 = &status"
      end
      コマンド &macro
      条件 ( &traceON ) トレース出力 _&macro
      条件 ( &traceON ) トレース出力 _&status
      ** 戻り値 説明
      ** 1 該当する行が存在した。処理対象行は、検索した行に移動する。
      ** -1 該当する行が存在しなかった。処理対象行は移動しない。
      ** このパラメータを指定せず、該当する行が存在しない場合は、終端行に移動します。

     else

      条件 ( &traceON ) トレース出力 _&action
      条件 ( &traceON ) トレース出力 _&string
      条件 ( &traceON ) トレース出力 #文字置換( #文字置換( [単語], &SP, &commaAnk ), &knjSP, &commaAnk )

      &string   = #文字置換( &string, &knjWQ, &knjWQ + &knjWQ )
      &string   = #文字置換( &string, &ankWQ, &ankWQ + &ankWQ )

      **&expression = "#対応番号( #文字置換( #文字置換( [単語], &SP, &commaAnk ), &knjSP, &commaAnk ), " + &ankWQ + &string + &ankWQ + " ) <> 0"
      **&expression = "#対応番号( #lc2( #文字置換( #文字置換( [単語], &SP, &commaAnk ), &knjSP, &commaAnk ) ), " + &ankWQ + #lc2( &string ) + &ankWQ + " ) <> 0"
      &expression = "#対応番号( #lc2( #文字置換( #文字置換( #文字置換( [単語], &SP, &commaAnk ), &knjSP, &commaAnk ), &dotAnk, &commaAnk ) ), " + &ankWQ + #lc2( &string ) + &ankWQ + " ) <> 0"
      条件 ( &traceON ) トレース出力 _&expression

      if ( &parameter = "絞り込み" )
       &macro = "絞り込み " + "&fieldName_&expression, 終了状態 = &status"
      else
       &macro = "検索 " + &action + "&fieldName_&expression, 終了状態 = &status"
      end

      コマンド &macro
      条件 ( &traceON ) トレース出力 _&macro
      条件 ( &traceON ) トレース出力 _&status

     end

     if ( &status = -1 .or &parameter = "絞り込み" .and #eof )

      &msg = "検索文字が見つかりません"
      &msg = &msg + "\n" + #複写( "-", 50 )
      &msg = &msg + "\n\n" + &ankWQ + &string + &ankWQ
      **&msg = &msg + "\n\n" + &ankWQ + &orgString + &ankWQ
      &msg = &msg + "\n\n検索方向 :" + #cond( &parameter <> #u, #cond( &parameter = "前行", "↑", &parameter = "次行", "↓", 1, &parameter ), 1, "先頭から" )

      if ( .not &mSearchByWord )
       &msg = &msg + "\n\n拡張辞書順:" + #cond ( &mode, "ON", 1, "OFF" )
      else
       &msg = &msg + "\n\n単語単位:ON"
       &msg = &msg + "\n\n<重要>"
       &msg = &msg + "\n\n単語単位の検索対象の文字列は"
       &msg = &msg + "\n\n空白文字(全角・半角)、または半角コンマ(,)で区切られている必要があります"
       &msg = &msg + "\n\n※注意:検索する文字列に空白文字(全角・半角)、または半角コンマ(,)が含まれていると検索に失敗します"
       &msg = &msg + "\n\n<ヒント>"
       &msg = &msg + "\n\n単語単位のチェックをオフ(OFF) にして検索してみてください"
      end

      メッセージボックス  &title, &msg, アイコン = i, ボタン指定 = 1, 制御文字展開 = する

     end

     条件 ( &traceON ) トレース出力 &traceMsg + "を実行終了しました"
    手続き定義終了

    p.s.

    もしも、解決したらですが・・・

    解決済み! BOX/ 解決したらチェックしてください!


[メール受信/OFF] 削除キー/

返信無し
 
前の記事(元になった記事) 次の記事(この記事の返信)
上記関連ツリー

Nomal [英単語] を単語単位で検索・絞込する方法 / いぶけん (24/02/16(Fri) 21:54) #14141
Nomal Re[1]: [英単語] を単語単位で検索・絞.. / ONnoji (24/02/17(Sat) 12:08) #14142
│├Nomal Re[2]: [英単語] を単語単位で検索・絞.. / ONnoji (24/02/17(Sat) 13:42) #14143
││└Nomal Re[3]: [英単語] を単語単位で検索・絞.. / ONnoji (24/02/17(Sat) 15:13) #14147
│└Nomal Re[2]: [英単語] を単語単位で検索・絞.. / いぶけん (24/02/17(Sat) 18:45) #14148
│  └Nomal Re[3]: [英単語] を単語単位で検索・絞.. / ONnoji (24/02/17(Sat) 19:10) #14149
│    └Nomal Re[4]: [英単語] を単語単位で検索・絞.. / いぶけん (24/02/17(Sat) 20:17) #14150
│      └Nomal Re[5]: [英単語] を単語単位で検索・絞.. / ONnoji (24/02/17(Sat) 20:37) #14151
│        └Nomal Re[6]: [英単語] を単語単位で検索・絞.. / いぶけん (24/02/17(Sat) 21:06) #14152
│          └Nomal Re[7]: [英単語] を単語単位で検索・絞.. / ONnoji (24/02/17(Sat) 21:38) #14153
│            └Nomal Re[8]: [英単語] を単語単位で検索・絞.. / ONnoji (24/02/18(Sun) 10:24) #14160
│              └Nomal [英単語] を単語単位で検索・絞込する方法 / ONnoji (24/03/03(Sun) 11:57) #14205 ←Now
Nomal Re[1]: [英単語] を単語単位で検索・絞.. / うにん (24/02/17(Sat) 14:20) #14144
│└Nomal Re[2]: [英単語] を単語単位で検索・絞.. / うにん (24/03/03(Sun) 19:41) #14206
│  └Nomal Re[3]: [英単語] を単語単位で検索・絞.. / ONnoji (24/03/03(Sun) 21:48) #14207
Nomal Re[1]: [英単語] を単語単位で検索・絞.. / 通りすがり (24/02/17(Sat) 14:45) #14146 1708148746.jpg/88KB

All 上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信

Mode/  Pass/

HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -