|
h-tom です。
>みなさん、はじめまして。てぃえ、と申します。
>秀丸マクロ初心者の翻訳者です。
>
<省 略>
>このように、原文ファイルからマクロを起動すると、
>原文(改行)訳文(改行)(改行)原文(改行)訳文(改行)(改行)・・・・
>・・・の順に並べた別ファイルが作りたいのです。
こんな感じですかね?
新しいファイルは作りませんが、マクロを実行したファイルに、もう一つの
ファイルの内容を持ってきます。
原文と訳文のみ、開いた状態で、実行してください。
//ここから
$BAK_SEARCHBUFFER = searchbuffer;
#BAK_SEARCHOPTION = searchoption;
#BAK_HILIGHTING = foundhilighting;
$BAK_REPLACEBUFFER = replacebuffer;
if(#BAK_HILIGHTING) hilightfound 0;
#main = hidemaruhandle(0);
#sub = hidemaruhandle(1);
#break = 0;
setcompatiblemode 0x0100;
//原文側カーソルをファイルの先頭へ
setactivehidemaru #main;
gofiletop;
//訳文側カーソルをファイルの先頭へ
setactivehidemaru #sub;
gofiletop;
//原文側へ移動
setactivehidemaru #main;
while(1){
//#main 空行を検索(挿入位置へ移動)
searchdown "^\n",regular;
if(!result){
//空行がなければ終了フラグセットし、最後へ
gofileend;
#break = 1;
}
escape;
//#sub 現在位置から空行を検索し、範囲選択
setactivehidemaru #sub;
beginsel;
searchdown "^\n",regular;
if(!result){
//空行がなければ最終行へ
gofileend;
}
endsel;
//文字列取り込みと選択解除
$ins = gettext(seltopx, seltopy, selendx, selendy);
//#sub 次の検索開始位置(空行以外)を検索
searchdown "^.+\n",regular;
if(!result){
gofileend;
}
escape;
//#mainへ移動し、文字列挿入
setactivehidemaru #main;
insert $ins;
//終了フラグがあれば終了
if(#break == 1) break;
//#main 次の検索開始位置(空行以外)を検索
searchdown "^.+\n",regular;
if(!result){
gofileend;
}
escape;
}
setsearch $BAK_SEARCHBUFFER, #BAK_SEARCHOPTION;
setreplace $BAK_REPLACEBUFFER;
if(#BAK_HILIGHTING) hilightfound 1;
endmacro;
//ここまで
|
|