|
こんにちは ならい さん、白雲斎です。
>ところで、このマクロは英単語→和訳語ですが、「受け取り」→「受取り」のように
>日本語→日本語の置換をするようにできないでしょうか。
>
>>searchdown2 "\\<[a-z]+\\>", regular, nocasesense;
>の部分を[a-z、-龠堯槇遙瑤凜熙]にすればいいのかな、などと考えてみたのですが、
>そんな簡単なわけにいかないみたいですね^^;)
各単語が空白で区切られている英文とは異なり、文字が連なっている日本語文章
にて、1個のキーワードで単語を特定することは不可能と思います。
ですので、冗長ではありますが、キーワード個数分の置き換えコマンドを実行す
る以外に方法が浮かびません。
多種多様な表記統一が求められるなら、ジャストシステムが販売している校正支
援ソフトの「Just Right!」などの導入を検討してみてはいかがですか。
(私はまったく知らないけど)
以下マクロ例:
●操作手順
1) 検索キーワードと置き換えキーワードを記述したファイル(置き換えリ
スト)を、マクロ用フォルダに「replaceListJa.txt」の名前で保存し
ます。
2) 編集対象のファイルを開いて、マクロを実行します。
3) 完了。
●置き換えリストの作成方法
ファイルの先頭に“[LIST]”、次の行からカンマ(,)区切りでキーワードを記述
します。
--------------------
[LIST]
受け取り,受取り
置き換え,置換
--------------------
末尾のマクロを実行して、メニューから「リストに連番を振る」を選択します。
--------------------
[LIST]
1=受け取り,受取り
2=置き換え,置換
--------------------
上のように、1から始まる連番が付けばOK。
●注意
これもINIファイル形式を採用しているので、先の注意事項と同じです。
キーワードによっては、望まない結果になる場合もあります。
キーワード :置換,置き換え
結果 :置換え ⇒ 置き換ええ
●以下マクロ
menu "校正", "リストに連番を振る";
#r = result;
if( #r == 0 ) endmacro;
else if( #r == 1 ) goto Proof;
disabledraw;
#n = 1;
movetolineno 1, 2;
while( code != eof )
{
insert str(#n) + "=";
if( lineno == linecount2 ) break;
#n = #n + 1;
movetolineno 1, lineno + 1;
}
enabledraw;
endmacro;
Proof:
$INI = macrodir + "\\replaceListJa.txt";
$delimit = ","; // キーワードの区切り
if( existfile($INI) == false ) endmacro;
disabledraw;
#i = 1;
$s = getinistr($INI, "LIST", str(#i));
while( $s != "" )
{
call Split $s, $delimit;
replaceallfast $fWord, $rWord;
#i = #i + 1;
$s = getinistr($INI, "LIST", str(#i));
}
enabledraw;
message "完了";
endmacro;
ERR:
message "キーワード区切りを解釈できない!\n" + $$1;
endmacro;
return;
Split:
##s = strstr($$1, $$2);
##l = strlen($$1);
if( ##s <= 0 || ##s == ##l - 1 ) call ERR $$1;
$fWord = leftstr($$1, ##s);
$rWord = rightstr($$1, ##l - ##s - strlen($$2));
return;
|
|