改行コードが入れられないNo.03675
ちゅん さん 03/04/04 11:30
 
皆さんこんにちは、ちゅんと申します。

テキストファイル中の”(改行コード)書名:”を
”<記録>(改行コード)<書名>”などに変換し、テキストファイルを
XML形式のファイルに作り変えるマクロを組んでいます。

しかしreplaceall "\n書名:","<記録>\n<書名>";
としてもテキストファイル中でヒットしないし、
(テキストファイル中にデータはちゃんとあります。)

replaceall "書名:","<記録>\n<書名>";
としても<記録>J<書名>となってしまって正常な改行コードが
書き込まれません。
("J"は白黒反転の変な文字です)

insert "改行する文章\n改行した後の文章";
とすれば正常に改行コードが書き込まれるのですが、replaceallでは
うまく改行コードを書き込めないようになっているのでしょうか?

アドバイスをよろしくお願いいたします。

[ ]
RE:03675 改行コードが入れられないNo.03676
ENCODINGSHIFTJIS さん 03/04/04 13:44
 
2重エスケープの呪いにやられています

正規表現の検索指定では改行は \n
文字列定数の中で\は\\    <−− ここがダイアログ入力とマクロの違い

したがって 、"\\n" としないと正規表現検索で
使えるようにはなりません。

FAQ です。ドキュメントにも書いてあります。

[ ]
RE:03676 改行コードが入れられないNo.03677
ENCODINGSHIFTJIS さん 03/04/04 13:52
 
キー操作の記録で全置換を行い
キー操作の保存、  a.mac
a.mac を開く
これで、正しいマクロソースが得られます。

[ ]
RE:03676 改行コードが入れられないNo.03678
三月 さん 03/04/04 19:21
 
>2重エスケープの呪いにやられています
>
>正規表現の検索指定では改行は \n
>文字列定数の中で\は\\    <−− ここがダイアログ入力とマクロの違い
>
>したがって 、"\\n" としないと正規表現検索で
>使えるようにはなりません。
>
>FAQ です。ドキュメントにも書いてあります。

さらに
replaceall "\\n書名:","<記録>\\n<書名>",regular;
って正規表現ってのをつけないと・・

[ ]
RE:03676 改行コードが入れられないNo.03679
Arimac さん 03/04/04 20:17
 
単に、正規表現でないと複数行の検索は出来ないって事
だけだと思いますが・・・

[ ]
RE:03679 改行コードが入れられないNo.03680
ちゅん さん 03/04/07 14:42
 
ENCODINGSHIFT JISさん、三月さん、Arimacさん
どうもレスありがとうございます。
お返事遅くなってすいません。

FAQにも書いてあるんですね。ちゃんと読み返してみます。
キー入力を記録すれば、マクロが作成されるんですね。これも
利用してみます。

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

[ ]