hinekure.net が http://hspdev-wiki.net/ から自動クローリングした結果を表示しています。画像やリソースなどのリンクが切れています。予めご了承ください。 |
HSPで文字列を連結するには文字列同士を+演算子でくっつければいいですね?
1 2 3 4 5 |
|
もう少し詳しく文字列を見てみよう。上の各変数の内容を覗いてみると次の表のようになっている。
変数H | 変数S | 変数P | |||||||||||||||||||
インデックス | 0 | 1 | 2 | 3 | 0 | 1 | 2 | 3 | 4 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
文字 | H | o | t | S | o | u | p | P | r | o | c | e | s | s | o | r | |||||
バイトコード | $48 | $6F | $74 | $00 | $53 | $6F | $75 | $70 | $00 | $50 | $72 | $6F | $63 | $65 | $73 | $73 | $6F | $72 | $00 | ||
変数HSP | |||||||||||||||||||||
インデックス | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | ||||
文字 | H | o | t | S | o | u | p | P | r | o | c | e | s | s | o | r | |||||
バイトコード | $48 | $6F | $74 | $53 | $6F | $75 | $70 | $50 | $72 | $6F | $63 | $65 | $73 | $73 | $6F | $72 | $00 |
文字列"Hot"と書くとHotの後ろにヌル文字と呼ばれる文字コード$00がつくというのは付属のドキュメントに書かれていますよね。(書かれてなかった!これはオンラインドキュメント・文字列のひみつに書かれています。)
そしてこの$00が文字列の終りを表します。
文字列の連結というのは、文字列の後ろに別の文字列の先頭をくっつけるということです。
ここで重要なのが「文字列の後ろ」です。
文字列の後ろというのは文字列の終りのことです。文字列の終りを表すのは$00ですね。
連結される文字列は前の文字列の文字列終端コード$00を先頭から順番に検索します。
そして一番最初の$00の位置にくっつけます。
「百聞は一見にしかず」次のテストコードで、ファイルの種類を増やすのdialogではファイルの種類の項目を増やせない理由も分かると思います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
このサンプルの最終的なmsgの内容は以下のようになっているのがデバッグウィンドウでも確認できると思います。
インデックス10にヌル文字があるため、以降msg変数を文字列として扱うときはインデックス11以降は文字列として認識されなくなります。
変数msg | |||||||||||||||||
インデックス | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
文字 | H | e | l | l | o | , | H | S | P | 3 | , | H | S | P | 3 | ||
バイトコード | $48 | $65 | $6C | $6C | $6F | $2C | $48 | $53 | $50 | $33 | $00 | $2C | $48 | $53 | $50 | $33 | $00 |