HSP | 全角/半角を判断して 1 文字ずつ出力 | Shift JIS

HSP | 全角/半角を判断して 1 文字ずつ出力 | Shift JIS

strmid 使ってもいいんですけど、1 byte/2 byte しか切り取らないのに、使うのはどうかなあと思い、
一度、文字列型変数にコピーするのも面倒くさいので、
strf("%c"), strf("%c%c") で表示させることにしました。

txt = "testてすとマミムメモ"
char_full = 0

repeat strlen(txt)
/* データ取得 */
dat_byte = peek(txt, cnt)

if (char_full) { // 全角の 2[byte] 目 (の可能性あり)
char_full = 0
} else {
if (((0x20 <= dat_byte) && (dat_byte <= 0x7E)) || ((0xA1 <= dat_byte) && (dat_byte <= 0xDF))) { // ASCII / 半角カナ
mes strf("%c", dat_byte)
} else : if ((((0x81 <= dat_byte) && (dat_byte <= 0x9F)) || ((0xE0 <= dat_byte) && (dat_byte <= 0xFC))) && (cnt < strlen(txt) - 1)) { // 全角 (の可能性あり)
mes strf("%c%c", dat_byte, peek(txt, cnt + 1))
char_full = 1
}
}
loop


「HSP | 全角/半角を判断して 1 文字ずつ出力 | Shift JIS」への2件のフィードバック

  1. おおー、何気に欲しい機能ですw
    シフトJISめんどいですよね……

コメントは受け付けていません。