全然更新しないブログ
HSPメモ帳
改行コード
実行環境
今回の記事内のコードはHSPの3.1と3.2のリリースバージョンで実行しています。新しいバージョンでは再現できない可能性があります。
文字コード
コード内で、クォーテンションである「'」で囲んだ時の1文字目の文字コードを意味します。つまり、
上記のコードの「code1」と「code2」は同じ値が代入されます。「code1」と「code2」は、16進数整数で、0x61が代入されます。「code2」には、0x6162は代入されません。
code1 = 'a'
code2 = 'ab'
code2 = 'ab'
上記のコードの「code1」と「code2」は同じ値が代入されます。「code1」と「code2」は、16進数整数で、0x61が代入されます。「code2」には、0x6162は代入されません。
改行コード
次に、以下のコードを実行してみます。
code1 = '¥r'
code2 = '¥n'
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
?456
?789
'¥n'を、0x0aに変更することで、期待したbufを取得できます。
123
?56
?89
?56
?89
コメント ( 0 ) | Trackback ( 0 )