Split関数

久しぶりに本家掲示板で回答してみた。
Split関数ねえ…こんな感じでどうだろう。

#module
#defcfunc split str cont,int cut ; cont:splitしたい文字列、cut:区切り文字コード
source=cont	; getstrのp2は変数限定なので、変数に入れておく
content=""	; 戻り値バッファ 初期化
tpos=0		; 検索開始位置 初期化

repeat
	getstr tmp1,source,tpos,cut
	if strsize=0 :break	; 終端なら抜ける		
	tpos+strsize	; strsizeは次の検索位置までの増分として利用する
	content+=tmp1+"\n"	; メモリーノートパッド形式でバッファに連結
loop

return content
#global

呼び出し上の注意は、区切り文字は文字コードで受け渡されるので、コードの数値で与えるか
下の's'のようにシングルクォーテーションで文字を括って与える。

table=split("aasaa,vv#vv,dddsd,gg#ggs,qq#qq,ggsgg##",'s')
notesel table
repeat notemax
	noteget tmp,cnt
	mes strf("%3d ",cnt)+tmp
loop
stop