| 記事内容:[|]
jwwから外部変形を実行するとき、%1,%2等の因数が発生しないBatファイルの場 合 (#c #f #k #i #hm 等が使われていない場合) 前回実行した外部変形の因数を返して来ます
その為、因数の発生しない外部変形で gawk のコマンドラインに%2 %3 等の記述が 有ると 前回実行した外部変形の因数が渡される為、ファイルが開けない といったエラー が出ます (gawk の後ろに書かれる文字列は -f 等のコマンドが無い場合 全て処理の対象と なるファイルネームとして扱われるので) #hm を使うと %1 の内容が選択したボタンの番号になり、因数がクリアされると思 います 多分これでエラーが出なくなったのではないでしょうか?
話は変わりますが
gsub(",","\.") gsub(",","\.")
は何をしようとしているのでしょうか?
awk のエスケープシーケンスに \. は無かったと思います また、カンマをピリオドに変えるのも妙ですが?
単純にカンマを消す場合 gsub([,,],"") で消せます、多分 あと、全角数値も計算出来ませんので、半角に直す必要が有ると思います (ちょっと長いので省きます)
if($1 ~/^(ch)/) a += substr($NF,match($NF,/[1-9]/))
この場合文字列に半角スペースが含まれると、スペース以降の文字列が対象となり ます(例外みたいな物なので、気にしなくても良いかも) また、/[1-9]/ だと 0.1 みたいな、小数点以下の数値が正常に処理されません マイナス数値等の処理も、そのまま加算されちゃいます 数値の後に文字が付随していたら 0 として処理されます
{if($1 ~/^(ch)/){ c=match($NF,/[0-9.-]+/) if( c > 0){ a += substr($NF,c,RLENGTH) } } }
でどうでしょう?
|