►index

     スポンサーサイト

    --------

    上記の広告は1ヶ月以上更新のないブログに表示されています。
    新しい記事を書く事で広告が消せます。

     VB.NET 文字列の左端から指定バイト数分の文字列取り出し(LeftB)

    2013-05-30

    vb6時代にあったLeftBが必要になったので作ってみました。

    全角は2バイト、半角は1バイトで計算し、全角文字が半分で切れることが無い様に考慮してます。

     

    【使い方】

    Dim s as String=”あいうえお”

    debug.Pring( LeftB(s,5) ‘←5バイト分取り出し

    【出力結果】

    あい  '←「う」の半分までが5バイトですが、文字化けしない様に「う」は出力しません。




       ''' <summary>

        ''' 文字列の左端より指定バイト数分の文字列を取り出す。全角が半部で切れない様考慮する。

        ''' </summary>

        ''' <param name="pTarget">取り出し元文字列</param>

        ''' <param name="pByteLen">取り出したいバイト数</param>

        ''' <returns>文字列の左端より指定バイト数分の文字列</returns>

        ''' <remarks></remarks>

        Public Shared Function LeftB(ByVal pTarget As String, ByVal pByteLen As Integer) As String

            Dim sb As New Text.StringBuilder

            Dim lenSum As Integer = 0

            Dim len As Integer = 0

            For i As Integer = 0 To pTarget.Length - 1

                len = LenB(pTarget(i))

                lenSum += len

                If lenSum <= pByteLen Then

                    sb.Append(pTarget(i))

                Else

                    Exit For

                End If

            Next

     

            Return sb.ToString

        End Function

     

        ''' <summary>

        '''     半角 1 バイト、全角 2 バイトとして、指定された文字列のバイト数を返します。</summary>

        ''' <param name="pTarget">

        '''     バイト数取得の対象となる文字列。</param>

        ''' <returns>

        '''     バイト数。</returns>

        Public Shared Function LenB(ByVal pTarget As String) As Integer

            Return System.Text.Encoding.GetEncoding("Shift_JIS").GetByteCount(pTarget)

        End Function

     


    トラックバック

    コメントの投稿

    非公開コメント

    PR
    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。