filetopから選択置換No.05779
安久津 さん 00/05/19 15:22
 
●問題。
  ##start = 1; // 条件[1]
  // ##start = 2; // 条件[2]
  movetolineno 1, ##start;
  beginsel;
  movetolineno 1, ##start + 10; // (##start + 10) < linecount2
  replaceall "\\n", "", regular, inselect; // 置換[A]
  // replaceall ".$", "%\\0", regular, inselect; // 置換[B]
  // replaceall "\\n", "\\n\\n", regular, inselect; // 置換[C]
  // replaceall ".\\f\\n","\\0", regular, inselect; // 置換[D]
endmacro;

条件[1] かつ 置換[A]
条件[1] かつ 置換[D]
の場合、ファイル全体の改行が削除されます。
改行の数が減る場合に起きます。

ではでは。

[ ]
RE:05779 filetopから選択置換No.05780
ENCODINGSHIFTJIS さん 00/05/19 17:38
 
正規表現パワーアップDLL(BRegIf.DLL)
                                                      Arimac
                                                                      1999/1
1/20
のせいでしょうか?それとも秀丸の動作設定
メニューで手で置換しても、マクロを実行しても正常でした。

[ ]
RE:05779 filetopから選択置換No.05783
秀丸担当 さん 00/05/19 17:50
 
>条件[1] かつ 置換[A]
>条件[1] かつ 置換[D]
>の場合、ファイル全体の改行が削除されます。
>改行の数が減る場合に起きます。

私のところでも再現できませんでした。
正常に動きました。(?)

[ ]
RE:05779 filetopから選択置換No.05784
番頭++ さん 00/05/19 19:37
 
安久津 さんへ
お久しぶりです。内も、起きませんでした。

「秀丸エディタ」マクロのバグを再現するマクロは、秀丸の常駐を一度終了して、
とか、時には  Windows を再起動後初めての、秀丸の窓で再現させる必要があり
ます。マクロを作成中に、何かがおかしくなる、マクロが正常な動きをしないと
か、です。その状態で、再現マクロをテストしても、ほかの環境では、再現でき
ないんです。この場合にも、すでにマクロは正常に処理されない、秀丸、マクロ
の稼働環境になっているのだと想像します。

[ ]
RE:05779 filetopから選択置換No.05785
Arimac さん 00/05/19 20:34
 
この現象が発生するのは知ってましたが
調査するのが面倒なので放置してました(^^;

これはオリジナルのJRE32.DLLでも起きました。

安久津さんの書き込みを「##start = 1;」の行から
「ではでは。」までを切り取って、左の余白を
無くし(インデントは残す)、先頭の3行を選択し
(カーソルは4行目の先頭)、正規表現で
選択範囲の置換("\n"→"")すると改行が全て
無くなってしまいます。

環境は秀丸(V3.05)、WinNT4.0(SP6a)です。

今、秀丸(V3.01)、Win95(B)でもやってみましたが、
起きてしまいました(^^;
(BRegIf.DLLとJRE32.DLLの両方とも)

[ ]
RE:05785 filetopから選択置換No.05788
番頭++ さん 00/05/19 21:47
 
>これはオリジナルのJRE32.DLLでも起きました。

確かに、再現出来ました。y, selendy の判定がおかしいかも ...

[ ]
RE:05779 filetopから選択置換No.05795
安久津 さん 00/05/20 14:55
 
動作環境を書き忘れました。(^^;)
Win95 OSR2、秀丸Ver3.05、JRE32.DLL です。

現象は、マクロでなく手動で発見しました。
ファイル先頭数行の改行削除のつもりでした。
選択範囲を超えて、改行がなくなっていくさまを見たときには、
悲鳴をあげました。Y(>_<、)Y ヤメレー!。

とにかく、Arimacさんと番頭++さんの所で再現できたで、
これにて失礼します。

ではでは。
#「ではでは」に代わるシメの言葉模索中。

[ ]
RE:05780 filetopから選択置換 再現パターNo.05801
ENCODINGSHIFTJIS さん 00/05/22 11:47
 
行長より短かい行が 第1行から続く場合は 再現します。
第1-2行を選択して
 置換(CTRL+R) \n →    正規表現  選択した範囲のみ  置換の前に確認
で  全置換

テストのテキスト
aaa
bbb
333
444
555
666
777
888
999   ....

選択した範囲のみの チェックマークは 信用してよいものか

[ ]
RE:05801 filetopから選択置換 再現パターNo.05802
ENCODINGSHIFTJIS さん 00/05/22 12:06
 
>>テストのテキスト
aaa99999999999999999999999999999
bbb
333
444

第1行の長さで変わる、先頭2行選択して 置換した時
aaa9999....99bbb333 が1行におさまってしまうと 暴走します。
行範囲の終了判定カウントがオーバーランして == にならない?

[ ]
RE:05795 filetopから選択置換No.05804
秀丸担当 さん 00/05/22 18:44
 
>とにかく、Arimacさんと番頭++さんの所で再現できたで、
>これにて失礼します。

Arimacさんの言われるようにやったら再現できました。
調べておきます。

[ ]