VB.NETではVB6のLiftB、RigthB、MidB関数がなくなりました。ここではVB6のLiftB、RigthB、MidB関数の代わりになるメソッドの作り方について紹介します。
目次
LiftB関数
VB6のLeftB関数は、文字列の左側より指定したバイト数の文字を取得します。
以下はVB.NETでのLiftB関数の代わりになるサンプルです。
Public Function LeftB(ByVal str As String, ByVal byteSize As Integer) As String
Dim hEncode As System.Text.Encoding = System.Text.Encoding.GetEncoding("shift_jis")
Dim btBytes As Byte() = hEncode.GetBytes(str)
If byteSize <= btBytes.Length Then
Return hEncode.GetString(btBytes, 0, byteSize)
End If
Return str
End Function
RigthB関数
VB6のRigthB関数は、文字列の右側より指定したバイト数の文字を取得します。
以下はVB.NETでのRigthB関数の代わりになるサンプルです。
Public Function RightB(ByVal str As String, ByVal byteSize As Integer) As String
Dim hEncode As System.Text.Encoding = System.Text.Encoding.GetEncoding("shift_jis")
Dim btBytes As Byte() = hEncode.GetBytes(str)
If byteSize <= btBytes.Length Then
Return hEncode.GetString(btBytes, btBytes.Length - byteSize, byteSize)
End If
Return str
End Function
MidB関数
VB6のMidB関数は、文字列の指定位置より指定バイト数の文字を取得します。第3引数を省略した場合は、第2引数の位置から最後までの文字を取得します。
以下はVB.NETでのMidB関数の代わりになるサンプルです。
Public Function MidB(ByVal str As String, ByVal start As Integer, ByVal byteSize As Integer) As String
Dim hEncode As System.Text.Encoding = System.Text.Encoding.GetEncoding("shift_jis")
Dim btBytes As Byte() = hEncode.GetBytes(str)
If start <= btBytes.Length Then
If (btBytes.Length - start) < byteSize Then
byteSize = btBytes.Length - start + 1
End If
Return hEncode.GetString(btBytes, start - 1, byteSize)
End If
Return String.Empty
End Function
Public Function MidB(ByVal str As String, ByVal start As Integer) As String
Dim hEncode As System.Text.Encoding = System.Text.Encoding.GetEncoding("Shift_JIS")
Dim btBytes As Byte() = hEncode.GetBytes(str)
If start <= btBytes.Length Then
Dim byteCount As Integer = btBytes.Length - start + 1
Return hEncode.GetString(btBytes, start - 1, byteCount)
End If
Return String.Empty
End Function
以上、VB.NETでVB6のLiftB、RigthB、MidB関数の代わりになるメソッドの作り方について解説しました。