[ 新規に投稿する ]

replaceallquickによる空行除去No.10298
kome さん 24/03/06 18:42 [ コメントを投稿する ]
  マクロは門前の小僧状態です。
いままで下記で空行の除去をしており、問題なく動作していました。
replaceallquick "^\n","",regular ;

ところがータの途中からこれが効かなくなったファイルが出てきました。
4万5千行くらいのデータで、3万行付近から空行除去ができていません。

改行コードの問題かと思い、
replaceallquick "^\r","",regular ;
replaceallquick "^\r\n","",regular ;
を試しましたがダメ。

replaceallquick → replaceallfast に置き換えるとうまく行きました。

実はこのマクロは他にもいろいろな処理をしておりまして、
replaceallquickも何カ所か別の目的で使っています。
これらには問題なく、上記空行除去のみがうまく行っていません。
(半年くらい使っていて、今回が初めてですが)

当面replaceallfastを使おうと思いますので、実用面で困ることないのですが、後学のため、原因や対処法について、お心当たりのある方がいらしたらお教え願えませんでしょうか。

秀丸は9.24の64bit版です。
よろしくお願いします。
[ ]
RE:10298 replaceallquickによる空行除去No.10299
秀丸担当 さん 24/03/07 08:58 [ コメントを投稿する ]
  replaceallquickで、ある行数からできなくなることがあるとしたら、バグの可能性が高いと思います。
こちらで4万5千行とかで試してみた限りでは再現せず、何か別の条件があるのだと思います。
他に条件となりそうな何か特徴的なことがわかると助かります。

再現が難しいようなパターンかもしれません。
もし差し支えなければ、文字は適当なものに置き換えたものでいいので、問題が起きたファイルを"taki@maruo.co.jp"まで送っていただければ調べます。
[ ]
RE:10299 replaceallquickによる空行除去No.10300
kome さん 24/03/07 22:15 [ コメントを投稿する ]
  秀丸担当さん

さっそくのレス、ありがとうございます。

「他に条件となりそうな何か特徴的なこと」とのこと、ご参考になるかどうかはわかりませんが…

・データは毎日更新されるwebページからのコピペで作っています
(データベースサイトからマウスでひっつかんで秀丸に貼付け、整形します)
・マクロの作成は半年前で、それから毎日同じ作業をしていますが、空行除去が失敗したのは2日前が初めてです。またその後の2日間は replaceallquick で問題なく動作しました。
・問題のデータでちゃんと空行除去できている前半部分を削除したファイルで試したところ、やはり同じ現象が起きていました。なのでデータの大きさには関係ないかと思います。

こんなところでしょうか。不足している情報等あればお知らせ下さい。
お言葉に甘えて、問題のファイルを後ほどメールで送らせて頂きます。

よろしくお願いいたします。
[ ]
RE:10300 replaceallquickによる空行除去No.10301
秀丸担当 さん 24/03/08 09:26 [ コメントを投稿する ]
  ファイルを受け取りました。
ありがとうございます。
こちらでも再現させることができました。
条件としては、行末にUnicode独自の文字があると、その後でできなくなってしまっているようでした。
謎な部分がありますが、秀丸エディタのバグであることは間違いないので、調べて修正させていただきます。
[ ]
RE:10301 replaceallquickによる空行除去No.10302
kome さん 24/03/08 17:27 [ コメントを投稿する ]
  秀丸担当さん
何だか、私の想定を超えた問題だったようで、恐縮です。
どうぞよろしくお願いいたします。

[ ]

[ 新規に投稿する ]