|
こんにちは。秀丸愛読者の「でるもんた・いいじま」です。
> 文字列 $text 中に改行があるか否かをチェックするマクロは
> 以下で良いのでしょうか?
>
> #kaigyo = strstr($text, "\\n");
> if(#kaigyo != -1) message "改行があります";
たぶんダメです。
1行目に "\\n" とありますが、これは「円記号そのもの+小文字のn」
という2文字の並びを表します。本当に改行をさがしたければ、
strstr( $text, "\n" ) のはずです。
☆ ☆ ☆
以下は与太話です。
細かいこと、というか好みの問題なのですが、個人的には if の中の
式は ( #kaigyo!=-1 ) よりは (#kaigyo >= 0 ) のほうが好みです。
というのも、幸いにして秀丸は必ず -1 を返しますが、strstr()
関数を実装する上での必須条件は
・見つかったときには該当位置の値を返す
・見つからなかったときは、「位置の値としてはありえない値」を返す
という2点だけなので、たとえば「必ず -2 を返す」でも「なぜ見つから
なかったのかに応じて別々の値を返す」でもいいんですね。
たとえばExcelだと、=SEARCH("d","abc") なんていう式を打ち込むと
#VALUE! が返ってきますので、これを使うときには
=IF(ISNUMBER(SEARCH("d","abc")),"あり","なし")
なんて書いたりします。
|
|