マクロの動作がおかしいNo.05075
attic さん 06/03/03 20:31
 
Windows XPで、秀丸V.5.00を使っています。
下記(1)のようなデータに対して、(2)のような「( )囲みの数値を
切り取る」というステートメントを含むマクロを実行しようとした
ところ、所望の動作をせずに、次のステートメントに移ってしまい
ます。
V.3.14(Windows 98SE)では問題なく動作していたので、とまどってい
ます。どのような原因が考えられるでしょうか。
ご教示頂ければ幸いです。

----------(1)データ----------
20,073(4,370)
7

16
4,236(1,176)
29

7
75
4443(898)
226
14

----------(2)マクロ----------
question "( )囲みの数値を切り取り; 続けますか?";
if( result == no ) endmacro;
call parenthesis ;// 逆順で貼り付け

parenthesis :
gofiletop;
while( 1 ) {
    searchdown2 "\\([0-9]*,*[0-9]+\\)", regular;
    if( result ) cut;
    else break;
    #i = #i + 1;
}
gofileend;
while( #i ) {
    poppaste;
    #i = #i - 1;
}
return;

[ ]
RE:05075 マクロの動作がおかしいNo.05076
山紫水明 さん 06/03/03 22:43
 
 atticさん,こんばんは。

>下記(1)のようなデータに対して、(2)のような「( )囲みの数値を
>切り取る」というステートメントを含むマクロを実行しようとした
>ところ、所望の動作をせずに、次のステートメントに移ってしまい
>ます。

「その他」→「動作環境」→「検索」→「検索での表示」が「点滅表示」に
なっていませんか?
「範囲選択」に変えてしまうのが具合悪ければ,マクロで一時的に変えるこ
とも可能です。

     では, (^^)/~
                                        山紫水明(ユーザー)
                                        SANSHISUIMEI

[ ]
RE:05076 マクロの動作がおかしいNo.05078
attic さん 06/03/04 13:16
 
山紫水明さん,こんにちは。
コメント有り難うございます。

>「その他」→「動作環境」→「検索」→「検索での表示」が
>「範囲選択」に変えてしまうのが具合悪ければ,マクロで一時的
>に変えることも可能です。

おっしゃるとおりでした。
「点滅表示」を「範囲選択」に変えたら、問題なく動作しました。

ちなみに、このような仕様はV.5以降のものでしょうか。
また、なぜこのような現象が起きるのでしょうか。
FAQかもしれませんが、引き続きご教示頂ければ幸いです。

[ ]
RE:05078 マクロの動作がおかしいNo.05079
Iranoan さん 06/03/04 13:39
 
 attic さん今日は、Iranoan です。
> おっしゃるとおりでした。
> 「点滅表示」を「範囲選択」に変えたら、問題なく動作しました。
 これは随分前からある設定です。標準は前者になっているので、最初にイン
ストールしたときにユーザが変更する必要があります。

> また、なぜこのような現象が起きるのでしょうか。
> FAQかもしれませんが、引き続きご教示頂ければ幸いです。
 実際に、上の設定を変えてみて
>     searchdown2 "\\([0-9]*,*[0-9]+\\)", regular;
>     if( result ) cut;
を手動でやってみると解ると思います。手順は
(1) \([0-9]*,*[0-9]+\)
    を正規表現 ON で検索
(2) 切り取り
です。

[ ]
RE:05079 マクロの動作がおかしいNo.05080
attic さん 06/03/05 03:22
 
Iranoanさん、こんばんは。
コメント有り難うございます。

>> 「点滅表示」を「範囲選択」に変えたら、問題なく動作しました。
> これは随分前からある設定です。標準は前者になっているので、
> 最初にインストールしたときにユーザが変更する必要があります。

間抜けな質問をしてしまい、申し訳ありません。
確かに、以前のバージョンでもこの設定がありました。
「範囲選択」がデフォルトだと思いこんでいて、気づきませんでし
た。

> 実際に、上の設定を変えてみて
>>     searchdown2 "\\([0-9]*,*[0-9]+\\)", regular;
>>     if( result ) cut;
>を手動でやってみると解ると思います。手順は
>(1) \([0-9]*,*[0-9]+\)
>    を正規表現 ON で検索
>(2) 切り取り
>です。

試してみました。「点滅表示」だと「切り取り」が無効になるよう
ですね。このような仕様であれば、所望の結果が得られなくても不
思議ではないですね。

ご教示、有り難うございました。
今後ともよろしくお願いいたします。

[ ]