〜 テキスト 〜
複数のテキストを1つに結合

テキストを指定した文字毎に区切るコチラの処理の逆版です。
尚、HSP2以前はユーザー定義命令の制約により、連結時に指定するのは文字コード(数値)となります。
それと、HSP3では標準の関数で配列要素数を取得できますが、
HSP2には用意されてないのでPVAL構造体から要素数を取得しています。
	
join 格納変数, 対象配列, デリミタ
格納配列1つに結合したテキストの受取先変数を指定する。
対象変数結合対象の文字列型配列変数を指定する。
デリミタ結合時、文字列間に挿入するデリミタをコード(数値)で指定する。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
#module
#deffunc join val, val, int
	mref string, 24 : mref ary, 57 : mref code, 2
	mref pval, 1025
	kugiri = "" : poke kugiri, , code
	string = ""
	repeat pval.3 // PVAL構造体で取得した配列要素数分繰り返す
		if cnt : string += kugiri
		string += ary.cnt
	loop
	return
#global

	sdim list, 16, 5
	sdim data, 80
	list = "apple", "orange", "grape", "banana", "strawberry"
	join data, list, '/'
	mes data
	stop
join 格納変数, 対象配列, デリミタ
格納配列1つに結合したテキストの受取先変数を指定する。
対象変数結合対象の文字列型配列変数を指定する。
デリミタ結合時、文字列間に挿入するデリミタを指定する。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#module
#deffunc join var string, array ary, str kugiri
	string = ""
	foreach ary
		if cnt : string += kugiri
		string += ary.cnt
	loop
	return
#global

	sdim list, 16, 5
	sdim data, length(list) * 10
	list = "apple", "orange", "grape", "banana", "strawberry"
	join data, list, "/"
	mes data
	stop