goo

改行コード

実行環境
今回の記事内のコードはHSPの3.1と3.2のリリースバージョンで実行しています。新しいバージョンでは再現できない可能性があります。

文字コード
コード内で、クォーテンションである「'」で囲んだ時の1文字目の文字コードを意味します。つまり、

code1 = 'a'
code2 = 'ab'

上記のコードの「code1」と「code2」は同じ値が代入されます。「code1」と「code2」は、16進数整数で、0x61が代入されます。「code2」には、0x6162は代入されません。


改行コード
次に、以下のコードを実行してみます。

code1 = '¥r'
code2 = '¥n'

16進数で、「code1」に0x0d、「code2」に0x0dが代入されます。一般的には、「¥r」は、0x0d、「¥n」は、0x0aです。もし、'¥n'をコード内で書いた場合に間違った結果となる可能性があります。例を以下のコードで示します。内容は、改行の次の文字を?に変更しています。

buf = {"123
        456
        789"}

repeat strlen(buf)
	if( peek(buf, cnt) == '¥n' ){
		if( peek(buf, cnt + 1) == 0 ){ break }
		poke buf, cnt + 1, '?'
	}
loop
mes buf
上記コードのbufの結果。'¥n'の箇所に?が代入されています。
123
?456
?789

'¥n'を、0x0aに変更することで、期待したbufを取得できます。
123
?56
?89
コメント ( 0 ) | Trackback ( 0 )