strstr($s,"\n")No.00809
ひろ さん 02/02/26 20:46
 
 秀丸担当さん今日は、ひろです。
gofiletop;
beginsel;
movetolineno 1,2;
$$return = gettext(seltopx,seltopy,selendx,selendy);
message str(strstr($$return,";\n"));
message str(strstr($$return,";\r"));
message str(strstr($$return,";\x0D"));
message str(strstr($$return,";\x0A"));
というマクロをこれ自体をサンプルにして実行すると、-1, -1, 9, -1 とな
ります。

 strstr で改行を検索する場合、改行コードが何であるか意識しなければい
けないのでしょうか? またこの場合 strlen も改行を 2 文字として返してき
ます。以前は気にする必要がなかったと思うのですが、気のせいでしょうか?

[ ]
RE:00809 strstr($s,"\n")No.00812
秀丸担当 さん 02/02/28 10:13
 
> strstr で改行を検索する場合、改行コードが何であるか意識しなければい
>けないのでしょうか? またこの場合 strlen も改行を 2 文字として返してき
>ます。以前は気にする必要がなかったと思うのですが、気のせいでしょうか?

調べてみたところ、"\n"や"\r"を文字列中に書いた場合、\x0aとして処理
されています。
検索される文字列が

"gofiletop;\x0d\x0a"

で、検索する文字列が

";\x0a"

となるので、";"と"\x0a"の間の"\x0d"が邪魔でstrstrにひかっからない
ようです。
以前からこの動作です。
でも改行コードを気にせずに";\n"でもひっかかるようにしたいところです
が、従来のマクロとの互換性が心配です。

[ ]
RE:00812 strstr($s,"\n")No.00815
ひろ さん 02/02/28 16:32
 
 秀丸担当さん今日は、ひろです。
> でも改行コードを気にせずに";\n"でもひっかかるようにしたいところです
> が、従来のマクロとの互換性が心配です。
 確かにそうですね。

 ちょっと質問ですが、gettext の仕様も変わっていませんよね。gettext
を使用して改行を取得した場合、常に「\x0D\x0A」という認識でよいのでしょ
うか?

[ ]
RE:00815 strstr($s,"\n"No.00816
秀丸担当 さん 02/03/01 17:25
 
> ちょっと質問ですが、gettext の仕様も変わっていませんよね。gettext
>を使用して改行を取得した場合、常に「\x0D\x0A」という認識でよいのでしょ
>うか?

いちおう、V2.00からV3.15に至るまでは変化は無いと思います。
今後どうなるかわからないので、strstrで\x0D\x0Aを検索する
使い方はあまり好ましくないかもしれません。

[ ]
RE:00816 strstr($s,"\n"No.00817
ひろ さん 02/03/01 17:56
 
 秀丸担当さん今日は、ひろです。
> いちおう、V2.00からV3.15に至るまでは変化は無いと思います。
 解りました。

> 今後どうなるかわからないので、strstrで\x0D\x0Aを検索する
> 使い方はあまり好ましくないかもしれません。
 確かにそうですが、現状ではそうしないと検索できません(^^;。

[ ]