;=============================================================== ; 2バイト文字対応文字数カットモジュール ;=============================================================== #module "_wf_str2cut" ; 2バイト文字対応文字数カット #defcfunc wf_str2cut str aa,int b ; 新関数「wf_str2cut」を生成 ;【パラメータ】 sdim a,256 : a=aa ; 文字列 変換元 ;b,1 ; 数値 桁数 ;【返し値】 ;c ;【レスポンス】 mref stt,64 ; stat l=strlen(a) if l > b { stt=b b2=b-1 sdim c,l+2 p=0 : val_chr=0 *s if p >= l : goto *endof_s val_chr=peek(a,p) if ((val_chr >= 129)&(val_chr <= 159))|((val_chr >= 224)&(val_chr <= 252)) { if (p == b2) | (p == b) { goto *endof_s } poke c,p,val_chr val_chr=peek(a,p+1) poke c,p+1,val_chr p+=2 }else{ if p == b { goto *endof_s } poke c,p,val_chr p+=1 } goto *s *endof_s return c }else{ sdim c,l+2 stt=l return a } #global