Skip to content

Visual Basic.NET いろいろなテクニック11

Posted in Visual Basic .NET, プログラム関係, and 技術メモ


業務アプリで使用できそうなものを五月雨に記録しておく。
まとまるまで待っていると忘れてしまうために・・・。ww

なお、このブログ内に記載しているソースの転載・転用については何も縛りはありません。
ご使用の状況の如何に問わず、作者たる当方は結果についてその責任を一切負いません。ご使用は自己責任の範囲でお願いいたします。

■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□

【文字列の切り出し3種】

Dim str As String = "123456789あいうえお"
<pre><code>'★左側から3文字切り出す
Dim case1 As String = Strings.Left(str,3)
'「123」となる

'★右側から2文字切り出す
Dim case2 As String = Strings.Right(str,2)
'「えお」となる

'★右側から数えて5文字目から2文字切り出す
Dim case3 As String = Strings.Mid(str,5,2)
'「56」となる</code></pre>

【バイト単位の文字列の切り出し】

最近はあまり使わないけど、業務プログラムを作成するときには、考える場面が多い。

Dim str As String = "123456789あいうえお"
<pre><code>'半角を1バイト、全角を2バイトと計算する考え方は「Shift_JIS」の文字コードを採用している場合ですので切り出したい文字列をあらかじめ「Shift_JIS」にエンコードします。
Dim Encode As System.Text.Encoding = System.Text.Encoding.GetEncoding("Shift_JIS")
'Shift_JISにエンコードされた文字列をバイト変数に格納します。
Dim bByte As Byte() = Encode.GetBytes(str)

'★左側から数えて4文字目から3バイト分切り出す
Dim case1 As String = Encode.GetString(bByte, 3, 3)
'「456」となる

'★右側から数えて3バイト分切り出す
Dim case2 As String = Encode.GetString(bByte , bByte.Length - 3, 3)
'「ヲお」となる(文字コードが中途半端になって化けます。)

'★左側から数えて10文字目から4バイト分切り出す
Dim case3 As String = Encode.GetString(bByte, 9, 4)
'「あい」となる</code></pre>

※注意!
上記の「文字の切り出し3種」で表記した例と文字数分切り出した結果が異なります。バイトで切り出す[Encode.GetString]の場合は切り出し開始位置は+1して考えます。その為、文字列の始めから切り出す場合は第二引数を0にします。省略はできません。

Be First to Comment

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA