参照文字変換
2021.05.10 5~7行追記
@if(0==1) //参照文字変換
@echo off
REM #jww
REM #cd
REM #zz ハッチ・図形・寸法・建具属性
REM #zw 線幅の設定・変更の書込・読込
REM #zc 文字基準点の書込
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.10 属性等の書出し設定を追記
//2021.5.5 エラーメッセージ追加
//2021.5.3 by somem
| 固定リンク
コメント