WhiteSpace/my_WhiteSpace用命令(HSP)

WhiteSpace/my_WhiteSpace用命令(HSP)

WhiteSpaceをHSPに翻訳するにあたり、いらない文字を削除する命令と、数値表現(1と2と3)文字表現(sとtとn)デフォルト表現(スペースとタブと改行(0A))を置き換えて(sとtとn)の表現に統一する用の命令を書きました

#module
//いらない文字を削除する命令(返り値あり)
#defcfunc trim_ws var p_src,int p4trim_a,int p4trim_b,int p4trim_c
	//半角英数字っぽく繰り返し。2byte文字非対応
	repeat 256
		//指定した文字は削除しない
		if cnt==p4trim_a||cnt==p4trim_b||cnt==p4trim_c{
			continue
		}
		//cntの文字削除
		p_src=strtrim(p_src,3,cnt)
	loop
	return p_src
#global
#if 1
//適当な文字列
_123="123456789  \nabc\t12456"
//'1''2''3'以外削除
_123=trim_ws(_123,'1','2','3')
//結果表示
mes ""+_123
//適当な文字列
stn="1234st56n789  \nasbc\t12t456n"
//'s''t''n'以外削除
stn=trim_ws(stn,'s','t','n')
//結果表示
mes ""+stn
//適当な文字列
ws_char="1234  56\t789  \nabc\t12456"
//' ''\t'0A(改行もどき)以外削除
ws_char=trim_ws(ws_char,' ','\t',$0A)
//結果表示
mes ""+ws_char
#endif
#module
//"1"を"s"に、"2"を"t"に、"3"を"n"に置き換える
//マイwhite_spaseの文字は"s""t""n"が本命
#deffunc ws_char_rep_123tostn var p4rep
	strrep p4rep,"1","s"
	strrep p4rep,"2","t"
	strrep p4rep,"3","n"
	return
//" "を"s"に、"\t"を"t"に、0A(改行もどき)を"n"に置き換える
#deffunc ws_char_rep_wschar_tostn var p4rep
	strrep p4rep," ","s"
	strrep p4rep,"\t","t"
	sdim tmp_0A,4
	poke tmp_0A,0,$0A
	strrep p4rep,tmp_0A,"n"
	return
#global
#if 1
//  さっき使った文字列"1""2""3"とか、を"s""t""n"に置き換える
	ws_char_rep_123tostn _123
// 結果表示
	mes _123
	ws_char_b=ws_char
//  さっき使った文字列" ""n"0A(改行もどき)とか、を"s""t""n"に置き換える
	ws_char_rep_wschar_tostn ws_char_b
// 結果表示
	mes ws_char_b
#endif
batake_lab

コメントは受け付けていません。