\nが読み取れないNo.04943
マイマイ さん 05/12/02 11:55
 
秀丸マクロを初めて作ってみましたが、
if (code != '\n')
でチェックしたところ、改行を認識してくれません。文字数をカウントする既存のマ
クロを動かしてみると、同様なチェックで除外しているにも関わらず改行を文字にカ
ウントします。
私のパソコンはFMV L50H、OSはWindows XPですが、このような現象は一般にあるもの
なのでしょうか。対処方法も分かれば教えてください。
マイマイ

[ ]
RE:04943 \nが読み取れないNo.04945
どみにか さん 05/12/02 12:22
 
マイマイさんこんにちは。どみにかと申します。

>if (code != '\n')
>でチェックしたところ、改行を認識してくれません。

code関数は、改行を0x0D(13)と返すはずです。
'\n'だと、0x0A(10)となるので、値が異なります。
ヘルプに書いてあった・・・と思います。ちょっと出先の環境で秀丸がないので確認
できませんが・・・。

[ ]
RE:04945 \nが読み取れないNo.04946
マイマイ さん 05/12/02 19:59
 
どみにかさん、マイマイです。
早速のコメントありがとうございました。

>code関数は、改行を0x0D(13)と返すはずです。
>'\n'だと、0x0A(10)となるので、値が異なります。

JISのコード表を参考に、'\n'ではなく'\r'(Carrige Return)を使ってみたらちゃん
と改行を認識してくれました!
それにしても解説本(「秀丸エディタハンドブック」や「秀丸マクロの使い方」)はど
れも、改行を'\n'とし、例示マクロもこれを使って書いているのはどうしたことでし
ょう。


[ ]
RE:04946 \nが読み取れないNo.04947
h-tom さん 05/12/02 21:40
 

h-tom です。

>JISのコード表を参考に、'\n'ではなく'\r'(Carrige Return)を使ってみたらちゃん
>と改行を認識してくれました!
JISのコード表ではなくマクロのヘルプを見ましょう。
codeの説明には
>改行文字の上の場合は0x0Dになります。
とありますよ。

>それにしても解説本(「秀丸エディタハンドブック」や「秀丸マクロの使い方」)はど
>れも、改行を'\n'とし、例示マクロもこれを使って書いているのはどうしたことでし
>ょう。
シングルクオートで囲まれた場合、文字(ASCII)コードをかえします。
つまり、エスケープシーケンス \n は 0x0a に割り当てられているので、0x0aという
"数字"を表します。
ダブルクオートで囲まれた(文字列中にある)場合には、改行"文字"と認識されます。

[ ]