おっと、半角文字の範囲間違えました。
ついでにTABをコピペした時等の特殊コードにも対応。
text=""
text0=""
input text
id_inp=stat
repeat
if text!=text0 : gosub *kakou
wait 20
loop
*kakou
//左から順に文字コードを調べる
text0=text
cou=0 //左から何バイト目を調べてるか
repeat
if cou>=strlen(text)-1 {
if cou<strlen(text) : poke text,cou,'*' //チェック対象が最後の1バイトということは、ここは非漢字で確定
break
}
a=peek(text,cou)
if ((a>=$00)&(a<=$7F)) | ((a>=$A0)&(a<=$DF)) { //半角文字(1バイト)で確定
poke text,cou,'*'
cou++
} else {
if (a<$88) | ((a>$9F) & (a<$E0)) | (a>$EA) { //漢字以外の2バイト文字で確定
poke text,cou,'*'
poke text,cou+1,'*'
cou=cou+2 //2バイトなので、チェック位置を2つ右に移動
} else {
cou=cou+2 //漢字で確定の場合は、チェック位置を2つ右へ
}
}
loop
strrep text,"*",""
if text0!=text : objprm id_inp,text
return