| 2022/07/29(Fri) 12:33:54 編集(投稿者)
ツリーが深くなって見辛くなったので、13422 へ再投稿移転しました。
以下はデータです。
■シフトJIS以外の文字の前後を疑問符で囲む.wfx
オブジェクト名: cmd疑問符を除去します 標題 : 疑問符を除去します
機能名 機能パラメータリスト 1 表示 2 手続き実行 cmd疑問符を除去しますClick 3 なし 4 なし
オブジェクト名: cmd氏名を検査 標題 : 氏名を検査して機種依存文字の前後を?で囲む
機能名 機能パラメータリスト 1 表示 2 手続き実行 cmd氏名を検査Click 3 なし 4 なし
■シフトJIS以外の文字の前後を疑問符で囲む.kex
名札 メイン
*
手続き定義開始 cmd氏名を検査Click( ) 変数宣言 自動,文字列{ &title = "cmd氏名を検査Click( )", &msg } 変数宣言 自動,文字列{ &fieldName } 変数宣言 自動,文字列{ &string } 変数宣言 自動,文字列{ &workString } 変数宣言 自動,文字列{ &chr } 変数宣言 自動,整数 { &fieldNum } 変数宣言 自動,整数 { &chrCount } 変数宣言 自動,整数 { &i, &loop, &step = 1 }
&fieldName = "氏名" /* 角カッコで囲まないで項目名を指定します 〇 "氏名" × "[氏名]" */ &fieldNum = #項目番号( &fieldName ) /* 項目の番号 */
ジャンプ 行番号 = 先頭 ┌繰り返し ( .not #eof ) │ │ &workString = #u │ &string = #項目属性( &fieldNum, 0 ) /* 項目値の取得 */ │ &chrCount = #文字数( &string ) /* 項目値の文字数をカウント */ │ **トレース出力 _&string, " ", _&chrCount │ │ &loop = &chrCount │┌繰り返し &i = 1, &loop, &step ││ ││ &chr = #sstr( &string, &i, 1 ) ││ **トレース出力 _&i, " ", _&chr, " ", ( #hex( #シフトjis( &chr ) ) = "81A0" ) ││ ││┌if ( #hex( #シフトjis( &chr ) ) = "81A0" .and #hex( #unicode( &chr ) ) <> "25A1" ) │││ &chr = "?" + &chr + "?" ││└end ││ &workString = &workString + &chr ││ │└繰り返し終了 │ **トレース出力 _&string, " ", _&workString │ │┌if ( #文字位置( &workString, "?" ) <> 0 ) ││ 行訂正 &fieldNum = &workString │└end │ │ ジャンプ 行番号 = 次行 └繰り返し終了
&msg = "先頭行から行終端まで至りました" メッセージボックス &title, &msg, アイコン = I, ボタン指定 = 1, 制御文字展開 = する
手続き定義終了
手続き定義開始 cmd疑問符を除去しますClick( ) 変数宣言 自動,文字列{ &title = "cmd疑問符を除去しますClick", &msg }
置換 [氏名] = #文字置換( [氏名], "?", #u ) &msg = "コマンド:置換 [氏名] = #文字置換( [氏名], ""?"", #u ) " &msg = &msg + "\n\nを実行しました" メッセージボックス &title, &msg, アイコン = I, ボタン指定 = 1, 制御文字展開 = する
手続き定義終了
|