6.指定バイト位置から指定バイト数分の文字列を取り出す関数(39_Str_06) (旧、SampleNo.111) |
1.指定バイト位置から指定バイト数分の文字列を取り出す関数 2. 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.指定バイト位置から指定バイト数分の文字列を取り出す関数 |
Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click Label4.Text = "[" & fMidB(TextBox1.Text, CInt(TextBox2.Text), CInt(TextBox3.Text)) & "]" '下記の指定でエラーが発生せず取得できます。 Debug.WriteLine("[" & fMidB("ABCあいう123", 0, 0) & "]") '結果 [] Debug.WriteLine("[" & fMidB("ABCあいう123", 0, 1) & "]") '結果 [A] Debug.WriteLine("[" & fMidB("ABCあいう123", 2, 1) & "]") '結果 [C] Debug.WriteLine("[" & fMidB("ABCあいう123", 3, 1) & "]") '結果 [] Debug.WriteLine("[" & fMidB("ABCあいう123", 3, 2) & "]") '結果 [あ] Debug.WriteLine("[" & fMidB("ABCあいう123", 4, 1) & "]") '結果 [] Debug.WriteLine("[" & fMidB("ABCあいう123", 4, 2) & "]") '結果 [い] Debug.WriteLine("[" & fMidB("ABCあいう123", 4, 7) & "]") '結果 [いう123] Debug.WriteLine("[" & fMidB("ABCあいう123", 2, 20) & "]") '結果 [Cあいう123] Debug.WriteLine("[" & fMidB("ABCあいう123", 20, 20) & "]") '結果 [] End Sub Private Function fMidB(ByVal myString As String, _ ByVal sByt As Integer, ByVal nByt As Integer) As String '指定バイト位置から指定バイト数分の文字列を取り出す関数 Dim sjis As System.Text.Encoding = System.Text.Encoding.GetEncoding("Shift_JIS") Dim tempByt() As Byte = sjis.GetBytes(myString) Dim sumByt As Integer = sjis.GetByteCount(myString) If sByt < 0 Or nByt <= 0 Or sByt > sumByt Then Return "" Dim strTemp As String = sjis.GetString(tempByt, 0, sByt) ' If sByt > 0 And strTemp.EndsWith(ControlChars.NullChar) Then If sByt > 0 And strTemp.EndsWith("・"c) Then sByt += 1 '開始位置が漢字の中なら次(前)の文字から開始 End If If sByt + nByt > sumByt Then '文字長より多く取得しようとした場合 nByt = sumByt - sByt '文字列の最後までの分とする End If fMidB = sjis.GetString(tempByt, sByt, nByt).Trim("・"c) ' fMidB = fMidB.Trim(""c) Return fMidB End Function |
2. |
3. |
4. |
5. |
6. |
検索キーワード及びサンプルコードの別名(機能名) |