|
megmin さん今日は、ひろです。
> マクロの行数は何か制限とかあるのでしょうか?
まず前ふりとして、実は秀丸のマクロはインタープリンタではなく、コン
パイル作業が行われ、内部的にはバイナリコードに変換されるそうです。そ
してマクロは行数ではなく、このコンパイル後のバイナリコードのサイズに
制限があったとおもいます。ですから単純に何行までとは言えないです。
> 内容は、単純な検索置換なのですが、
> 対象となる文字列のパターンが多くて
> 200行×20ファイル分ぐらいあります。
これだけ多いと、replaceall を使っただけではサイズオーバーになるかも
しれませんね。幾つかのマクロに分割して、execmacro を使うか、
//---------------------- sample macro -------------------------------
##i = 0;
while(1){
$search = getinistr("word.ini","SEARCH",str(##i));
if( $search == "")break;
$replace = getinistr("word.ini","REPLACE",str(##i));
#option = getininum("word.ini","OPTION",str(##i));
setsearch $search, #option|4;
setreplace $replace;
gofiletop;
while( result )finddown2;
##i = ##i + 1;
}
//---------------------- sample macro -------------------------------
というマクロを書き、word.ini の内容は、
;------------------ sample of INI file ------------------------------
[SEARCH]
1="検索語1"
2="検索語2"
3="検索語3"
[REPLACE]
1="置換語1"
2="置換語2"
3="置換語3"
[OPTION]
1=0
2=1
3=16
;------------------ sample of INI file ------------------------------
というに、置換をおこなうデータとマクロを別にしておくとできると思いま
す。ただしこの ini ファイルにも制限があり、1 つのセクションで 32 KB、
全体で 64 KB です。
|
|