HSP命令講座 <split命令>

Last Update : 2009/03/xx

PR HSPの書籍 『最新HSP3.2 プログラミング入門』

split命令

 特定文字列の区切りで文字列を分割切り出しして、指定した変数へと代入する命令です。HSP3(バージョン3.2〜)から登場した新規の命令になります。命令名の由来は、そのまま英単語の「split」(goo辞書)から。getstr命令にじゃっかん近い処理です。

 split 元のバッファ, "区切り文字", 代入する変数, 代入する変数, ・・・

 第1パラメータには分割区切りの対象となる大元の文字列型変数を指定します。第2パラメータで区切りとなる文字を指定します。第3パラメータ以降は切り出した結果を代入するための変数を指定していきます。代入用の変数は「可変長」と呼ばれるタイプで、split命令にどんどん付け足して指定できます。

 システム変数statには、split命令により分割した数が返ります。

↑TOP↑

サンプルソース (HSP 3.2〜)

 「/」(スラッシュ)を区切りに分割切り出しして、指定した各変数へと文字列が代入されます。

//	切り出して各変数に代入 [HSP 3.2〜]

	buf = "HSP/split/命令/講座"

	split buf, "/", a, b, c, d
	mes stat

	mes a
	mes b
	mes c
	mes d

 「,」(コンマ)を区切りに分割切り出しします。代入用の変数が1つだけならば、文字列型配列変数として切り出した文字列が各要素に代入されます。切り出した文字列の量が多くてもバッファの自動拡張機能が働いてバッファオーバーフローエラーになりませんが、少しでもパフォーマンスを落としたくないなら、あらかじめsdim命令で文字列型配列変数のサイズと要素数を確保してください。

//	切り出して文字列型配列変数として代入 [HSP 3.2〜]

	buf = "HSP,split,命令,講座"
	mes buf

	split buf, ",", kekka
	mes stat

	repeat stat
		mes kekka(cnt)
	loop

 複数ある区切りを組み合わせてみます。システム変数statの分割数をチェックしてループさせます。

//	区切りの複数組み合わせ [HSP 3.2〜]

	buf = "HSP:エイチエスピー,split:スプリット:すぷりっと,hoge:ほげ"
	mes buf

	split buf, ",", kekka1

	repeat stat
		split kekka1(cnt), ":", kekka2
		mes kekka1(cnt)

		repeat stat
			mes "\t"+kekka2(cnt)
		loop
	loop

 切り出した結果を代入する変数を指定しなかった場合は、システム変数statを見ることで、指定文字の出現カウント機能として利用できます。

//	指定文字のカウント [HSP 3.2〜]

	buf = "HSP:@@::あいHSP3うえお::HSP,;ABCD/HSP\\"
	mes buf

	split buf, "HSP"
	mes ""+(stat - 1)+" コ"

↑TOP↑

〜HSP3 あれこれ〜
ウィンドウ | オブジェクト | ファイル | フォルダ | キーボード | マウス | メニュー | システム | 文字列 | COM | その他

Copyright © 2005-2011 ゲーム作成ソフトHSPの情報をいろいろと Let's HSP!. All rights reserved.