\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という
"数字"を表します。
ダブルクオートで囲まれた(文字列中にある)場合には、改行"文字"と認識されます。
[
△
]