一括置換についてNo.03558
山紫水明 さん 03/01/25 09:51
 
  ちゅんさん,山紫水明です。
 1番会議室から移りました。

  本格的な複数ファイル置換マクロは,ひろさんのがライブラリにあったと思い
ますが,手軽なものを書いておきますので,試してください。正規表現などの複
雑な置換はだめです。

//------------------------------------------------//
//  複数ファイルのまとめて置換するマクロ
//  目的のファイルの一つを開いて実行
// 1行目はオプションで書き換え可能

#ask = 0;   //1:途中確認する    0:しない
$s = input( "検索文字列は?" );
if( $s == "" ) endmacro;
$r = input( "置換文字列は?" );
if( $r == "" ) endmacro;
$folder = input( "指定フォルダは", directory );
if( $folder == "" ) endmacro;
$ext = input( "ファイルの拡張子は", ".txt" );
if( $ext == "" ) endmacro;
$file0 = filename;
#handle0 = hidemaruhandle( 0 );
grep $s, "*" + $ext, $folder, regular, filelist;
replaceallfast "\\([0-9]+\\)\\n", "\\n", regular;
#handle_g = hidemaruhandle( 0 );
#c = linecount2 - 1;
gofiletop;
while( #i < #c ) {
    golinetop2;
    beginsel;
    golineend2;
    $f = gettext( seltopx, seltopy, selendx, selendy );
    openfile $folder + "\\" + $f;
    #handle1 = hidemaruhandle( 0 );
    replaceallfast $s, $r;
    if( #ask ) {
        question "保存しますか?";
        if( result ) save;
    } else save;
    #i = #i + 1;
    setactivehidemaru #handle_g;
    closehidemaruforced #handle1;
    movetolineno 1, lineno + 1;
}
openfile $file0;
closehidemaruforced #handle_g;
if( #ime ) imeswitch;
message "終わりました。\n" + str(#i) + " 個のファイルを置換しました。";
endmacro;
//------------------------------------------------//

       では, (^^)/~

[ ]
RE:03558 一括置換についてNo.03559
山紫水明 さん 03/01/25 11:58
 
追伸です。
  よろしければ,ライブラリにある拙作の「置換マクロ」も,お役に立つかみて
ください。

     では, (^^)/~
                                        山紫水明

[ ]
RE:03559 一括置換についてNo.03560
ちゅん さん 03/01/27 21:00
 
山紫水明さん、こんにちは。

いろんな会議室に書いて頂いてありがとうございます。
ソースコードまで書いてくださったので、これを使わせて
頂きますね。

>追伸です。
>  よろしければ,ライブラリにある拙作の「置換マクロ」も,お役に立つかみて
>ください。

はい、試してみます。

ありがとうございました。

[ ]