replaceall の resultNo.08764
山紫水明 さん 15/10/18 22:23
 

秀丸担当さん,
 ask パラメータ付きの次の全置換を実行して,一つ一つ「置換+次」を押して
全部を置換しても,結果は 0 になります。
「すべて置換」にすると実際の置換数より一つ少ない数が入ります。
これは仕様でしょうか。
//------------------------------
replaceall "A", "a", ask;
message str(result);
//------------------------------

              山紫水明

[ ]
RE:08764 replaceall の resultNo.08768
秀丸担当 さん 15/10/19 14:06
 

確かにそうなっていることが確認できました。
askのときについては、手動操作のような感じになっていて、resultについては
特に設定されていませんでした。
「一気」のときは、現在カーソルのある部分を1つ置換してから、その後は「全
置換」相当となり、そうなっていました。

もし取得できたとして、手動の操作によってはいくらでもresultの値は増える可
能性がありそうです。
例えば「上候補」「下候補」を切り替えながら置換したり、「一周する」や「次
の秀丸も続けて置換」のときでも、操作手順によっては際限なく増えてしまうと
思うので、確実な値の取得は難しそうです。

[ ]
RE:08768 RE:replaceall の resultNo.08770
山紫水明 さん 15/10/19 20:17
 
 秀丸担当さん,

>もし取得できたとして、手動の操作によってはいくらでもresultの値は増える可
>能性がありそうです。
>例えば「上候補」「下候補」を切り替えながら置換したり、「一周する」や「次
>の秀丸も続けて置換」のときでも、操作手順によっては際限なく増えてしまうと
>思うので、確実な値の取得は難しそうです。

 ちょっとこれが理解できません。実際に置換が行われるのは「置換」,「置換
+次」,「一気」の時だけで,「上候補」「下候補」を押しても置換はありませ
んので,カウントされないはずです。置換数は実際の置換候補文字数以上にはな
らず,「際限なく」はあり得ないと思います。
 もしかしたら,理解不足のところがあるかも知れません。値の取得が困難とい
うことであれば,現状を仕様として了解です。

                    山紫水明

[ ]
RE:08770 RE:replaceall の resultNo.08773
秀丸担当 さん 15/10/20 09:44
 

何度もカウントされる可能性がある例としては、例えば以下のマクロを実行しま
す。
replaceall "A", "a", ask;
「置換+次」を何度か押して、置換します。
次に「上候補」を押して、方向を上に切り替えます。
また「置換+次」を何度か押して、置換します。
replaceall "a", "aa", ask;
にするとわかりやすいかもしれません。
この操作は何度でも行えてしまうので、resultが得られたとしても、あまり信頼
できない値ということになってしまいそうです。

[ ]