#module m_2byte_check #deffunc _2byte_check var tmp_ss,var tmp_s tmp_l=strlen(tmp_s) tmp_ss="" i=0 while i < tmp_l n=peek(tmp_s,i) if ((n>=129)&(n<=159) )|( (n>=224)&(n<=252)){ tmp_ss+="2":i++ if tmp_l>i { tmp_ss+="3":i++ } }else{ tmp_ss+="1":i++ } wend return #global #module // _pをsep_nで前と後に分割 #deffunc simple_split var _p,var _p2,var _p3,int sep_n l_p=strlen(_p) piyo="" // _pの前を取り出す piyo=strmid(_p,0,sep_n) foo="" // _pの後を取り出す foo=strmid(_p,-1,l_p-sep_n) _p2=piyo _p3=foo return #global #module #defcfunc spltline var _src,int len tmp_sss="" _2byte_check tmp_sss,_src v_s1="" v_s2="" simple_split _src,v_s1,v_s2,len v_c1="" v_c2="" simple_split tmp_sss,v_c1,v_c2,len tmp_r="" do tmp_hoge=strmid(v_c1,-1,1) if tmp_hoge=="2"{ sdim tmp_v_s1,4 poke tmp_v_s1,0,peek(v_s1,(len-1)) poke tmp_v_s1,1,peek(v_s2,0) v_s1=strmid(v_s1,0,(len-1))+tmp_v_s1 tmp_piyopiyo="" simple_split v_s2,tmp_piyopiyo,v_s2,1 v_c1+=strmid(v_c2,-1,1) tmp_piyopiyo="" simple_split v_c2,tmp_piyopiyo,v_c2,1 } tmp_r+=v_s1+"\n" cnt_l=strlen(v_s2) if cnt_l<len{ tmp_r+=v_s2 _break } tmp_v_s1="" tmp_v_s2="" simple_split v_s2,tmp_v_s1,tmp_v_s2,len v_s1=tmp_v_s1 v_s2=tmp_v_s2 tmp_v_c1="" tmp_v_c2="" simple_split v_c2,tmp_v_c1,tmp_v_c2,len v_c1=tmp_v_c1 v_c2=tmp_v_c2 await 1 until 0 return tmp_r #global //--------サンプル開始 src = "0123笑愛456789abcdefg" mes spltline(src,5)