« 座標面積計算 | トップページ | 文字コード »

2021年5月 3日 (月)

参照文字変換

ファイル参照機能を利用したファイルの、
参照文字を印刷文字に変換する外部変形です。
バッチファイルは、ANSIコードで保存してください。
参照ファイルは、バッチファイルと同一フォルダに保存のこと。
※参照ファイル名は、任意に変更可、12行目を修正のこと。

2021.5.5
・参照ファイルが見つからない場合のエラー処理追加
・正常終了時のメッセージを変更
Photo_20210505103901

@if(0==1) //参照文字変換
@echo off
REM #jww
REM #cd
REM #h4 読取可能データ
REM #ht10 ブロック図形除外
REM #ht20 曲線図形除外
REM #ht30 寸法図形除外
REM #ht40 ソリッド図形除外
REM #g1 全 レイヤグループ選択
REM #e
type ref.txt jwc_temp.txt>temp.txt
cscript //nologo //e:jscript "%~f0" %*
del temp.txt
goto:eof
※参照ファイル名"ref.txt"は、任意に変更可
@end
//ファイルオープン
fso=new ActiveXObject("Scripting.FileSystemObject")
w=fso.CreateTextFile("jwc_temp.txt")
r=fso.OpenTextFile("temp.txt")
//初期設定
sp=" " //スペース
dq="\"" //ダブルコーテーション
m=0;n=0
emsg="h#参照ファイルがありません!"
//配列宣言
be=[];af=[]
//temp.txt"の読込み
while (!r.AtEndOfLine){
line=r.ReadLine()
//印刷文字の取得
if(/hq/.test(line)){
if(n==0){
w.WriteLine(emsg) //エラーメッセージ
WScript.Quit() //スプリクト終了
}
w.WriteLine("hd") //選択図形消去
}
else if(/^%%/.test(line)){
n=n+1
jd=line.split(/\t/) //タブ区切り
be[n]=dq+jd[0] //参照文字
af[n]=dq+jd[1] //印刷文字
}
//印刷文字の書出し
else if(/^ch/.test(line)){
ch=line.split(/\s+/) //スペース区切り
cht=ch[5];rf=cht.substr(1,2)
if(rf=="%%"){
chr=comp(cht,be,af) //文字比較・置換
ch[5]=chr //印刷文字
m=m+1 } //変換数
else{ }
ch=ch.join(sp) //カンマ→スペース変換
w.WriteLine(ch)
}
//再作図
else{
w.WriteLine(line)
}
} //while
end="h#"+m+"文字を変換しました"
w.WriteLine(end) //終了メッセージ
//ファイルクローズ
r.Close();w.Close()
//ユーザー定義関数
function comp(ch,be,af){
for(i=1;i<=n;i++){
if(ch==be[i]){return af[i]}
} //for
} //function
//////////
//2021.5.5 エラーメッセージ追加
//2021.5.3 by somem

|

« 座標面積計算 | トップページ | 文字コード »

コメント

コメントを書く



(ウェブ上には掲載しません)




« 座標面積計算 | トップページ | 文字コード »