掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TextBoxの文字数制限で全角・半角の区別をつけるには (ID:116954)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ああ、ユーザに修正させませんか…。そーゆー処理は自分勝手 だからユーザに直させるようにしなさい…と過去言われた記憶 がありますが、まぁ、処理によっては別にいいと思うので…。 ちょっとオタオタしてて恥ずかしい過去ログですが、 過去ログ検索『半角』か『Encoding』あたりで引っ掛かります。 http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200404/04040020.txt 文字区切りがちょっと問題。 …というか、結局文字の区切りにボクの紹介したリンク先の 判定法を使うなら、それを改造して、Encoding クラスは 使わない方がすっきりしますが…。 無理やりこんな方法でも何とかなります。はてさて(^^;)どうしましょう。 Private Sub Test() Dim strString As String = "1123漢r字456a7890" Dim BytesWK() As Byte Dim sjisEnc As System.text.Encoding Dim str As String Dim n As Integer n = 2 ' 切り取りたいバイト数 sjisEnc = sjisEnc.GetEncoding("Shift_JIS") BytesWK = sjisEnc.GetBytes(strString) ReDim Preserve BytesWK(n - 1) str = sjisEnc.GetString(BytesWK) str = str & "Dummy" ' 最後に"が付いてないとこの処理がうまくいかないです。 ' 強制 Me.TextBox1.Text = str str = Me.TextBox1.Text & "Dummy" Debug.WriteLine(str) '/// ここから質問の回答 Dim objEncoding As System.Text.Encoding = System.Text.Encoding.GetEncoding("Shift_JIS") Dim intByteCount As Integer = objEncoding.GetByteCount(strString) 'Dim BytesWK() As Byte '制限バイト数との比較 If intByteCount > 20 Then 'ここの部分の書き方が分かりません BytesWK = objEncoding.GetBytes(strString) ReDim Preserve BytesWK(20 - 1) Me.TextBox1.Text = sjisEnc.GetString(BytesWK) End If End Sub
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.