| cmxの記述は簡素なものなのでTXTとして以下に再掲しておきます。 ---------------------------- 変数宣言 文字列{&FILE名,&KEX名,&TBX名,&BAK名} ファイル削除 "dir-kex.bat", 終了状態=&実行リターン ファイル削除 "dir-kex.txt", 終了状態=&実行リターン 印字開始 "dir-kex.bat",SJIS出力=する,終了状態=&実行リターン 印字 "dir *.kex /b > dir-kex.txt" 印字終了 シェル実行 "dir-kex.bat",&秒 *----「cmd」ファイル内の記述は今回置換の対象としていない 表 "kexリスト.tbx",表番号=1 cond( .not #空ファイル) 行削除 *,圧縮,終了状態=&実行リターン 読み込み テキスト,"dir-kex.txt",終了状態=&実行リターン,* *表形式編集 編集表 1 &件数=1,&最大値=#総件数 繰り返し &FILE名=[FILE名],&KEX名=&FILE名+".kex",&TBX名="$$$"+&FILE名+".tbx" /* kexと同名のtbxがあると困るので */ ファイル名変更 &KEX名,&TBX名,終了状態=&実行リターン cond(&実行リターン<>0) 確認 "「"+&FILE名+"」表変換でエラー → メモせよ!" /*印字の方がいいかも*/ 表 &TBX名,表番号=2 *----↓ 但し「.tbl」や「.TBL」等は想定しているが、「.Tbl」とかの大文字・小文字混在は想定していない。 *----↓ それと、入れ子は最小限として、置換を愚直に繰り返した(記述が見にくくなるので)。 置換 終了状態=&実行リターン,[処理]=#s(#s([],".tbl",".tbx"),".TBL",".tbx") 置換 終了状態=&実行リターン,[処理]=#s(#s([],".viw",".vix"),".VIW",".vix") 置換 終了状態=&実行リターン,[処理]=#s(#s([],".xvw",".xvx"),".XVW",".xvx") 置換 終了状態=&実行リターン,[処理]=#s(#s([],".wfm",".wfx"),".WFM",".wfx") 置換 終了状態=&実行リターン,[処理]=#s(#s([],".rpt",".rpx"),".RPT",".rpx") 置換 終了状態=&実行リターン,[処理]=#s(#s([],".cmd",".cmx"),".CMD",".cmx") 置換 終了状態=&実行リターン,[処理]=#s(#s([],".kev",".kex"),".KEV",".kex") 置換 終了状態=&実行リターン,[処理]=#s(#s([],".var",".vax"),".VAR",".vax") 置換 終了状態=&実行リターン,[処理]=#s(#s([],".k3",".k3x"),".K3",".k3x") 置換 終了状態=&実行リターン,[処理]=#s([],".k3xx",".k3x") /*←苦肉(^^;)*/ 終了 表 2 ファイル名変更 &TBX名,&KEX名,終了状態=&実行リターン cond(&実行リターン<>0) 確認 "「"+&FILE名+"」戻し時にエラー → メモせよ!" /*印字の方がいいかも*/ &BAK名=&TBX名+".BAK" ファイル削除 &BAK名,終了状態=&実行リターン /*変更あった際に$$$*.tbx.BAKが残るので*/ 確認 "("+#str(&件数)+"/"+#str(&最大値)+") 「"+&FILE名+"」 処理終了" 編集表 1 ジャンプ 行番号=次行 &件数=&件数+1 cond(#eof) 繰り返し中止 繰り返し終了
|