対訳集を作りたい!No.06243
てぃえ さん 09/11/05 17:09
 
みなさん、はじめまして。てぃえ、と申します。
秀丸マクロ初心者の翻訳者です。

作りたいマクロがあるのですがどうすればよいのか
皆目見当がつかないので、こちらで何かしらヒントを
頂けると助かります。

■翻訳作業で秀丸エディタを使っています。

■原文ファイル(たとえば、"*.j")と訳文ファイル(たとえば、"*.e")を
横に並べて翻訳作業しています。各ファイルのなかみは、
一文ごとに改行2つ以上で区切られて対応する文章が
左右に並ぶようにしています。

■この翻訳済みのファイルを、のちのち活用しやすいように
1つのファイルにまとめたいのです(対訳集)。

■具体的には、こんなイメージです。(左端は行番号です。)
-----(原文*.j ここから)----
1 ああああ。
2
3 いいいいいいいいいいいい
4 いいいいい。
5
6 うううううううううう。
-----(原文*.j ここまで)----

-----(訳文*.e ここから)----
1 aaaaaaaaaaa.
2
3 bbbbbbbbbbbbbbbbbbbbbb.
4
5
6 ccccccccccccccccc.
-----(訳文*.e ここまで)----

---(対訳集*.j2e ここから)--
1 ああああ。
2 aaaaaaaaaaa.
3
4 いいいいいいいいいいいい
5 いいいいい。
6 bbbbbbbbbbbbbbbbbbbbbb.
7
8 うううううううううう。
9 ccccccccccccccccc.
---(対訳集*.j2e ここまで)--

このように、原文ファイルからマクロを起動すると、
原文(改行)訳文(改行)(改行)原文(改行)訳文(改行)(改行)・・・・
・・・の順に並べた別ファイルが作りたいのです。

■上の例では、日本語から英語(*.j2e)としましたが、
できれば、反対方向(*.e2J)もできるとうれしいです。
(起動したほうが原文と認識して。)

どうぞよろしくお願いします。

てぃえ

[ ]
RE:06243 対訳集を作りたい!No.06245
h-tom さん 09/11/06 22:15
 

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;
//ここまで

[ ]
RE:06245 対訳集を作りたい!No.06246
てぃえ さん 09/11/07 12:07
 
h-tom 様

す、すごいです!!!
マクロを書いてくださったのですね!
どうもありがとうございます。

早速、動かしてみると、希望していたとおりのファイルができました。
こんなふうにマクロがすいすい書けるといいですね。憧れます。
自分でもいつかできるようにこつこつ勉強していきたいと思います。

てぃえ

[ ]