【】Top

【】VB.NET
【】VB6.0

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






【】会社概要

【】お問い合わせ


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

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

アイネットマコト

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






全角半角の文字列チェックをする

.NET では、ある特定の文字列の中から全角文字と半角文字の
文字位置検出させることが可能です。


この機能を使えば、すべて全角文字でなければいけない入力項目、
すべて半角文字列でなければならない入力項目のチェックを
させることが可能です。

ここでは、簡単に、「テキストボックス」へ文字列入力して
含まれているかどうかチェックする場合での説明をしています。

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

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

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

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

  ┏━━━━┓┏━━━━┓
  ┃Button1 ┃┃Button2 ┃
  ┗━━━━┛┗━━━━┛



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


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

  ┏━━━━┓┏━━━━┓
  ┃半角    ┃┃全角    ┃
  ┗━━━━┛┗━━━━┛



3.フォームで右クリックして、「コードの表示」を
  選び、コード編集画面にします。

4.フォームの宣言部に、次のコードを記述します。

    Imports System
    Imports System.Text

5.さらに、 Public Class Form1 内に、
  次のコードを記述します。

    '半角、全角のチェックをする
    'PIstrChkstr チェックする文字列
    'PIintChktype チェックするタイプ 0:半角 1:全角
    Private Function Chk_HanZenString(ByVal PIstrChkstr As String, _
           ByVal PIintChktype As Integer) As Long

        Dim lngStrLen As Long        '文字列長さ
        Dim lngSStrP As Long         '文字列検知ポジション
        Dim str1Moji As String       '文字列1文字
        Dim sjisEnc As Encoding = Encoding.GetEncoding("Shift_JIS")

        Chk_HanZenString = 0
        '文字列長さを保持
        lngStrLen = PIstrChkstr.Length
        lngSStrP = 1
        Do
            If lngSStrP > lngStrLen Then
                '文字列の検知終了
                Exit Do
            End If
            str1Moji = Mid(PIstrChkstr, lngSStrP, 1)
            If sjisEnc.GetByteCount(str1Moji) = 1 Then
                '半角
                If PIintChktype = 0 Then
                    Chk_HanZenString = lngSStrP
                    Exit Function
                End If
            Else
                '全角
                If PIintChktype = 1 Then
                    Chk_HanZenString = lngSStrP
                    Exit Function
                End If
            End If
            lngSStrP = lngSStrP + 1
        Loop


    End Function



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

        Dim intRet As Integer

        intRet = Chk_HanZenString(TextBox1.Text, 0)
        If intRet > 0 Then
            MsgBox(intRet & "文字目に半角文字が含まれています。")
        Else
            MsgBox("半角文字は含まれておりません。")
        End If


    End Sub


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

        Dim intRet As Integer

        intRet = Chk_HanZenString(TextBox1.Text, 1)
        If intRet > 0 Then
            MsgBox(intRet & "文字目に全角文字が含まれています。")
        Else
            MsgBox("全角文字は含まれておりません。")
        End If

    End Sub



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

7.フォームに表示された
    テキストボックスに、チェックしたい文字列を入力します。
     ※例) もじもじ

8.フォームに表示された「半角」を押すと、
    メッセージボックスに、
  「半角文字は含まれておりません。」が表示されます。

9.フォームに表示された「全角」を押すと、
    メッセージボックスに、
  「1文字目に全角文字が含まれています。」が表示されます。



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

半角1バイト、全角2バイトであることより、
バイト数によって半角なのか全角なのかをチェックしています。

そこで、
クラスのGetByteCountメソッドで、
文字列のバイト数を取得しています。

シフトJISをサポートしているEncodingオブジェクトを
取得しています。





 

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

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

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