【】Top

【】VB.NET

【】メールマガジンの購読
【】メールマガジンの解除






【】会社概要

【】お問い合わせ

【】厳選サンプルツール集


姉妹サイト「バーチャルコネクション!」はこちらです。

姉妹サイト「七福神のメールでビンゴ!」はこちらです。

アイネットマコト

●24時間365日の安心をあなたにAT-LINK専用サーバ・サービスお勧めのサーバです。






テキストの文字数と文字バイト数を取得する

.NET でも、テキストの文字数と文字バイト数を取得する
ことが可能です。


フォームに次の様なコードを記述します


-----------VB.NETコーディングここから-------------------


1.フォームに、テキストボックスコントロール、
    ボタンコントロール
    を配置します。
    下記は、デフォルトのオブジェクトの名前と配置を示しています。

   ┏━━━━━━━━━━━┓
   ┃TextBox1              ┃
   ┗━━━━━━━━━━━┛
   ┏━━━━┓
   ┃Button1 ┃
   ┗━━━━┛



2.ボタンコントロールの
    Button1 text プロパティに「確認」と記述します。
  ※説明用のためです。必須ではありません。

   ┏━━━━━━━━━━━┓
   ┃TextBox1              ┃
   ┗━━━━━━━━━━━┛
   ┏━━━━┓
   ┃確認   ┃
   ┗━━━━┛




3.ボタンコントロールをダブルクリックして、
    ボタンのクリックイベントの編集を開始して、
    フォームの宣言部に、次のコードを記述します。

    Imports System.text


  さらに、次のコードを記述します。



    Private Sub Button1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button1.Click


        Dim strStr As String
        Dim sjisEnc As Encoding

        Dim intStrLen As Integer
        Dim intStrByte As Integer


        strStr = TextBox1.Text

        sjisEnc = sjisEnc.GetEncoding("Shift_JIS")

        intStrByte = sjisEnc.GetByteCount(strStr)
        intStrLen = strStr.Length

        MsgBox("文字数" + CStr(intStrLen) + _
        " 文字バイト" + CStr(intStrByte))




    End Sub



4.ビルドして実行します。

5.フォームに表示された
    テキストボックスに、「みかん8個」。

6.フォームに表示された
    ボタン「確認」を押します。

7.メッセージボックスに
 「 文字数5 文字バイト9 」と表示されます。





-----------VB.NETコーディングここまで-------------------

String.Length
文字数では、2バイト文字である 「みかん個」が
4文字としてカウントされ、1バイト文字である「8」が
1文字とカウントされ、計5文字として返されます。

sjisEnc.GetByteCount(String)
文字バイト数では、2バイト文字である「みかん個」が
4文字×2バイト=8バイトとしてカウントされ、
1バイト文字である「8」が
1文字×1バイト=1バイトとなり、
計9バイトとして返されます。

用途は様々ですが、
例えば、ディスクへの書き込みや、データベースフィールドなどで、
半角、全角が混在している場合に、入力できるかどうかの精査で
実際のサイズが必要な場合があります。
このような時は、バイトを参照するかと思います。
また、文字数は、特定の文字部分から何文字を抜き取るといった
ケースで重宝するかと思います。

どちらも便利ですね。



 

http://anetm.com/dev/d.cgi?SC=DTDTL&o=Oel

Copyright(c)2001-2003 Ai Net Makoto 記事・情報の無断転載を禁止します。

「これがほしかった!厳選サンプルツール集」の注意点
●当サイトはリンクフリーです。
2004/01/28(水)00:05 更新