5.文字列の半角換算のバイト数の取得及び文字列を指定のバイト数にカット(39_Str_05) (旧、SampleNo.016) |
1.文字列を半角1バイト換算の指定のバイト数にカットする 2.文字列を半角1バイト換算でのバイト数を取得する 3. 4. 5. 6. |
下記プログラムコードに関する補足・注意事項 動作確認:Windows 8.1 (Windows 7) / VB2013 (VB2010) / Framework 4.5.1 / 対象の CPU:x86 Option :[Compare Text] [Explicit On] [Infer On] [Strict On] Imports :追加なし 参照設定:追加なし その他 : : このサンプル等の内容を無断で転載、掲載、配布する事はお断りします。(私の修正・改訂・削除等が及ばなくなるので) 必要ならリンクをはるようにして下さい。(引用の場合は引用元のリンクを明記して下さい) |
1.文字列を半角1バイト換算の指定のバイト数にカットする |
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click '文字列を半角1バイト換算の指定のバイト数にカットする TextBox2.Text = fStrCut(TextBox1.Text, CInt(TextBox3.Text)) TextBox2.Focus() Debug.WriteLine("[" & fStrCut("ABCあいう", 4) & "]") '結果 [ABC ] Debug.WriteLine("[" & fStrCut("ABCあいう", 9) & "]") '結果 [ABCあいう] Debug.WriteLine("[" & fStrCut("ABCあいう", 12) & "]") '結果 [ABCあいう ] End Sub Private Function fStrCut(ByVal Mystring As String, ByVal nLen As Integer) As String '文字列を指定のバイト数にカットする関数(漢字分断回避) Dim sjis As System.Text.Encoding = System.Text.Encoding.GetEncoding("Shift_JIS") Dim TempLen As Integer = sjis.GetByteCount(Mystring) If nLen < 1 Or Mystring.Length < 1 Then Return Mystring If TempLen <= nLen Then '文字列が指定のバイト数未満の場合スペースを付加する Return Mystring.PadRight(nLen - (TempLen - Mystring.Length), CChar(" ")) End If Dim tempByt() As Byte = sjis.GetBytes(Mystring) Dim strTemp As String = sjis.GetString(tempByt, 0, nLen) '末尾が漢字分断されたら半角スペースと置き換え(VB2005="・" で.NET2003=NullChar になります) If strTemp.EndsWith(ControlChars.NullChar) Or strTemp.EndsWith("・") Then strTemp = sjis.GetString(tempByt, 0, nLen - 1) & " " End If Return strTemp End Function |
2.文字列を半角1バイト換算でのバイト数を取得する |
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click '文字列を半角1バイト換算でのバイト数を取得する Label2.Text = "上記テキストボックスの文字は " & fLenB(TextBox2.Text) & " バイトです。" ' MessageBox.Show("文字列 [ABCあいう ] のバイト数は、" & fLenB("ABCあいう ") & " バイトです") End Sub Private Function fLenB(ByVal MyString As String) As Integer '文字列を半角1バイト換算でのバイト数を取得する自作関数 fLenB = System.Text.Encoding.GetEncoding("shift-jis").GetByteCount(MyString) End Function |
3. |
4. |
5. |
6. |
検索キーワード及びサンプルコードの別名(機能名) |
文字列を指定のバイト数にカットする関数(漢字分断回避) 文字列を半角1バイト換算でのバイト数を取得する自作関数 |