|
こんにちは。yamasanです。お世話になっています。
舩橋さん、ENCODINGSHIFTJIS さん、ひろさん、ありがとうございます。
ひろさんの、ご説明で少し分かりました。
> これを具体的に記すと、
>grep ".|\\n", "*.htm", ".", regular, filelist;
>replaceallfast "\\.(H|h)(T|t)(M|m)(L|l)?\\(1\\)$", "", regular;
>といった要領です。ただし空のファルは取りこぼすという欠点があります。
これを、grep.macとしました。
そして実行しました。確かに、ファイルの一覧が出力されます。
大変すばらしいです。(空のファイルは考慮しなくても良いので。)
ではありますが、お恥ずかしいのですが、
これをどう利用するのでしょうか?
さっぱり分かりません。お恥ずかしい次第ですが、正直な気持ちです。
実は、以前に、
kakasiさん(間違っていたら、ごめんなさい)だったと思いますが、
教えて頂いたマクロがあります。(最後に、記します。)
フォルダ内の全てのファイルを検索し、置換する物です。
大変重宝しています。これを利用しようと思ったが出来ないので、
色々、考えている所です。このマクロを利用できないかなとも考えてます。
このように、あまり分からない人間なので、
ご迷惑をおかけし恐縮ですが、お構い無ければ、お教えください。
どうぞ、お願いします。
--------------
//目的のファイルを一つ開いて実行する
#starttime = tickcount;
#handle_1 = hidemaruhandle( 0 );
grep ".+", "*.*", ".", regular, icon, filelist;
//文字が1字以上あるファイルのリストを作る
//もっと限定できる文字列を書いてもよい
#n = result;
replaceallfast "\\([0-9]+\\)$", "", regular;
//行番号を削除
gofiletop;
#i = 1;
while( #i <= #n ) {
$file[#i] = gettext( 0, y, linelen, y );
//2行以上にわたる長いファイル名があれば別の書き方が必要ですが。
down;
#i = #i + 1;
}
#handle_g = hidemaruhandle( 0 );
changename "grep.tmp";
closehidemaruforced #handle_1;
#i = 1;
while( #i <= #n ) {
openfile "/h " + $file[#i];
#handle[#i] = hidemaruhandle(0);
if(#i > 1) closehidemaruforced #handle[#i - 1];
call Replace;
save;
#i = #i + 1;
}
closehidemaruforced #handle_g;
#time = tickcount - #starttime;
message "終わりました\n" + str(#time/1000) + " 秒かかりました";
endmacro;
Replace: //処理
replaceallfast "検索_01", "置換_01", regular;
replaceallfast "検索_02", "置換_02", regular;
replaceallfast "検索_03<", "置換_03", regular;
return;
|
|