| 例文にはピリオド( . )がありませんでしたので対応しませんでしたが、
もしも、
・フォースを使え。感じるのだ。 Use the Force. Feel it.
・フォースと共にあらんことを。 May the Force be with you.
のような例文の場合、文末の Force it you が見つかりません。
もしも。必要ならば以下のように改修してください。
手続き定義開始 prcString検索実行( 文字列 &fieldName, 文字列 &string, 文字列 ¶meter, 整数 &mode, 整数 &searchByWord ) 変数宣言 自動,文字列{ &icon, &title = "prcString検索実行( )", &msg } 変数宣言 自動,文字列{ &expression, &ankWQ = #jis( #hex("22") ), &knjWQ = #jis( #hex("2149") ), &asterisk = #jis( #hex("2A") ) } 変数宣言 自動,文字列{ ¯o, &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( ¶meter = "次行", "∨, ", ¶meter = "前行", "∧, ", 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 ( ¶meter = "絞り込み" ) ¯o = "絞り込み " + "&fieldName_&expression, 終了状態 = &status" else ¯o = "検索 " + &action + "&fieldName_&expression, 終了状態 = &status" end コマンド ¯o 条件 ( &traceON ) トレース出力 _¯o 条件 ( &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 ( ¶meter = "絞り込み" ) ¯o = "絞り込み " + "&fieldName_&expression, 終了状態 = &status" else ¯o = "検索 " + &action + "&fieldName_&expression, 終了状態 = &status" end
コマンド ¯o 条件 ( &traceON ) トレース出力 _¯o 条件 ( &traceON ) トレース出力 _&status
end
if ( &status = -1 .or ¶meter = "絞り込み" .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( ¶meter <> #u, #cond( ¶meter = "前行", "↑", ¶meter = "次行", "↓", 1, ¶meter ), 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/ 解決したらチェックしてください!
|