いただいた例をマクロに入れてやってみたところ、\n では問題が生じるのをこ ちらでも確認しました。む、バグか、と思いつつ、マクロヘルプを読んでいたら、 @@ReplaceStringMulti の項目に、「文字列に、改行(\n)を含めることはできま せん」という1文がありました。
というわけで、QX の一括文字列置換では「\n」は扱えない、が正しかったわけ です。最初のわたしのレスは、したがって間違いです。すいませんでした。わた しのところで置換が可能だったのは、ひじょうにシンプルな例のみをやってみた からかもしれません。
となると、複数文字列一括置換では \n を含むものだけは除外しておいて、別途 改行だけ処理することになってしまいますね。あ、そう言えば、複数文字列一括 置換は、ある行を読み込んで、そのなかで同時に指定された複数の文字列を探す わけですから、しくみからも \n には対処できないのかもしれません。
マクロでやるなら、改行だけは @ReplaceString2 を使えばうまくいきます。
proc main @UndoBlock=1 @@ReplaceStringMulti ":", "={" @@ReplaceStringMulti "\^", "-" @@ReplaceStringMulti ";", "};" @ReplaceStringMultiExec 1 @MoveFileTop @ReplaceString2 ",\n", ",", 1 @UndoBlock=0 end proc |