« 全角⇔半角変換 | トップページ | 123D Design »

2013年11月19日 (火)

複数種文字列変更

複数種類の文字列を、メモ帳を使って個別に変更する外部変形です。

メモ帳には、対象文字、¥(全角)、置換文字の順で書込み上書き保存。
例)2種類の場合は、2行に分けて書込んでください。
ABCDE¥12345
FGHIJ¥6789

外変用バッチファイル
----------
@REM 複数種文字列変更
@echo off
REM #jww
REM #cd
REM #h3 範囲内の文字選択
REM #hc 文字を範囲選択してください
REM #ht10 ブロック図形除外
REM #e
notepad memo.txt
jgawk '{if($1!=""){print "¥",$0}{}}' memo.txt>tmemo.txt
jgawk -f pl_chr.awk tmemo.txt jwc_temp.txt>temp.txt
jgawk '{print ""}' tmemo.txt>memo.txt
copy temp.txt jwc_temp.txt
del temp.txt
del tmemo.txt
goto end
# 範囲選択から左AM0時「確定 基点(free)」を実行
# メモ帳に対象文字¥置換文字を書込み
:end

pl_chr.awk
----------
## 複数種文字列変更
BEGIN{
    dq="\""                # ダブルコーテーション
    sp=" "                # 半角スペース
    fdq="¥"            # 区切り文字:全角ダブルコーテーション
    }    # BEGIN
## 対象文字/置換文字
/^¥/{    n=n+1
    split($0,cc,fdq)
    be[n]=dq cc[2]            # 対象文字
    sub(sp,"",be[n])        # 半角スペース削除
    af[n]=dq cc[3]            # 置換文字
    next
    }
/hq/{print "hd";next}            # 選択図形消去
/^ch/{    ch=$6
    if(NF>6){            # 半角スペースを含む文字列
        for(i=7;i<=NF;i++){
            ch=ch sp $(i)}
            }
    chr=comp(ch,be,af)        # 作図文字/対象文字比較
    if(chr==""){print}
    else{print "ch",$2,$3,$4,$5,chr}
    next}    # ch
## 再作図
    {print}
##### ユーザー定義関数
## 文字列比較
function comp(chr,be,af){
    for(i=1;i<=n;i++){
    if(chr==be[i]){return af[i]}
        }    # for
    }    # function

|

« 全角⇔半角変換 | トップページ | 123D Design »

コメント

コメントを書く



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




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/94529/58607291

この記事へのトラックバック一覧です: 複数種文字列変更:

« 全角⇔半角変換 | トップページ | 123D Design »