HSP3で日英文字列から指定インデックスを取得する。

#runtime "hsp3cl" s="sdfはghききgh" #m […]

#runtime "hsp3cl" s="sdfはghききgh" #m […]

  • タグ:
  • タグはありません
#runtime "hsp3cl"
s="sdfghgh"
#module
#defcfunc getBytes str _txt
txt=_txt
byteMap=""
isSJIS=0
repeat strlen(txt)
if isSJIS: isSJIS=0: continue
byte=peek(txt,cnt)
if 129<=byte&byte<=159 | 224<=byte&byte<=252 {
isSJIS=1
byteMap+="2"
}
else {
byteMap+="1"
}
loop
return byteMap
#defcfunc strIndex str _txt,str _byteMap,int index
txt=_txt: byteMap=_byteMap
bIndex=-1
dim bSize
repeat index+1
bSize=int(strmid(byteMap,cnt,1))
bIndex+=bSize
loop
if bSize=2: bIndex-1
return strmid(txt,bIndex,bSize)
#global
b=getBytes(s)
mes b
mes strIndex(s,b,6)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX