Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
全角と半角を判別したい
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30839#CommentId85623
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
ヤマダ
 (学生)
投稿日時
2023/1/26 15:16:39
全角と半角及び送信不可文字を判別したいのですが、最終的には以下のプログラムと同じ挙動になるようにしたいです。
chg_kana_name = student_name
Do Until chg_kana_name = ""
If AscB(Left(chg_kana_name, 1)) >= &HA0 Or AscB(Left(chg_kana_name, 1)) <= &H1F Then
w_fullname = w_fullname & "?"
chg_kana_name = Mid(chg_kana_name, 2, Len(chg_kana_name))
Else
Exit Do
End If
Loop
まず、上のIF文でどういう理屈で半角と全角を判定しているのか教えていただきたいです。
下記が自分なりに考えたソースになります。
chg_kana_name = student_name
Dim test As Byte()
Do Until chg_kana_name = ""
test = System.Text.Encoding.GetEncoding("Unicode").GetBytes(Left(chg_kana_name, 1)
If test(0) >= &HA0 Or test(0) <= &H1F Then
w_fullname = w_fullname & "?"
chg_kana_name = Mid(chg_kana_name, 2, Len(chg_kana_name))
Else
Exit Do
End If
Loop
半角の場合はtest()のindex1の値は必ず255になるのでしょうか?
質問したいことが複数ありましたので、わかりにくい投稿かと思いますが、よろしくお願いいたします。