;hsp3.21 ;hexcsv.as ;16進csvデータ(=カンマで区切られたデータ)を数値に変換し、 ;さらにバイナリファイルにする bindata="0a,3f,4c,b2,00,37,88,9f,d0,1e" ;元になるデータ hexstr="0123456789abcdef" ;16進数字→数値変換用 size=strlen(bindata) ;データの長さ(バイト数) n=(size+1)/3 ;データの個数を求める sdim bin,n+1 ;バイナリデータ格納用変数 idx=0 ;元のデータの位置を記憶する変数 repeat n ;データの個数だけ繰り返す getstr s,bindata,idx,',': idx+=strsize ;データを1個取り出す→s ;16進数字列(s)を数値(val)に変換 val=0 ;数値データ格納用変数初期化 repeat 2 t=strmid(s,cnt,1) ;16進数字を1桁取り出す→t c=instr(hexstr,,t) ;1桁の16進数字(t)→数値(c)変換 if c>=0 { val=val*16+c ;変換結果をvalに反映させる } loop poke bin,cnt,val ;変換結果をバイナリデータにする loop bsave "bindata.bin",bin,n end