IsSJISマクロ †
ShiftJISコードの漢字第一・第二バイトを判定するマクロです。
#define ctype IsSJIS1st(%1) (($81<=%1 & %1<=$9f)|($e0<=%1 & %1<=$fc)) ; 漢字第一バイトを判定
#define ctype IsSJIS2nd(%1) (($40<=%1 & %1<=$7e)|($80<=%1 & %1<=$fc)) ; 漢字第二バイトを判定
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
-
|
-
|
-
|
!
|
!
| s = "hspHSP"
gosub *chk
poke s, strlen(s)-1, 0
gosub *chk
stop
*chk
repeat strlen(s)
if IsSJIS1st(peek(s, cnt)){
mes ""+cnt+":漢字第一バイト"
if IsSJIS2nd(peek(s,cnt+1)){
mes ""+(cnt+1)+":漢字第二バイト"
}else{
mes "ShiftJIS文字列でない": break
}
continue cnt+2
}
mes ""+cnt+":ASCII文字"
loop
return
|
- 文字コード関連のプラグインなら標準装備だと思いますが、プログラミング始めたばかりの人でも「HSP 漢字第一バイト 判定」などで検索したときにヒットするようにね...。定型処理だと思うのであっても無駄にはならないでしょう^^ --