VBレスキュー(花ちゃん)
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ各掲示板

メニューへ戻ります。 文字列操作関係のメニュー
1.文字列を半角→←全角等異種文字列に変換する
2.文字列の文字数・バイト数を取得する
3.文字列中から指定位置の文字を取り出す
4.指定の文字数になるまで、先頭又は、末尾に指定文字を埋める
5.文字列の半角換算のバイト数の取得及び文字列を指定のバイト数にカット
6.指定バイト位置から指定バイト数分の文字列を取り出す関数
7.半角カタカナだけを全角カタカナに変換する
8.文字列中から指定の文字を検索する方法色々
9.
10.
11.
12.
 .
20.その他、当サイト内に掲載の文字列操作に関するサンプル


8.文字列中から指定の文字を検索する方法色々(39_Str_08) (旧、SampleNo.018)
1.文字列の先頭から指定の文字を検索し見つかった位置から継続して検索
2.文字列を文末から検索し最初に見つかった位置を取得
3.文字列内に指定の文字がいくつあるか調べる
4.
5.
6.

 下記プログラムコードに関する補足・注意事項 
動作確認:Windows 8.1 (Windows 7) / VB2013 (VB2010) / Framework 4.5.1 / 対象の CPU:x86
Option :[Compare Text] [Explicit On] [Infer On] [Strict On]
Imports :追加なし
参照設定:
追加なし
その他 :
    :
このサンプル等の内容を無断で転載、掲載、配布する事はお断りします。(私の修正・改訂・削除等が及ばなくなるので)
必要ならリンクをはるようにして下さい。(引用の場合は引用元のリンクを明記して下さい)
このページのトップへ移動します。 1.文字列の先頭から指定の文字を検索し見つかった位置から継続して検索

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'文字列の先頭から指定の文字を検索し見つかった位置から継続して検索
    TextBox1.Text = "ABC123abcabcあいうABC123abcあいうABC123abcあいう"
    Dim SearchChar As String = "abc"
    Dim dp, np As Integer
    Do
        dp = TextBox1.Text.IndexOf(SearchChar, np)    '検索
        If dp >= 0 Then         '見つかった場合
            TextBox1.Select(dp, SearchChar.Length)  '見つかった文字を強調表示
            'TextBoxBase.HideSelection プロパティ  
            'テキストボックスコントロールがフォーカスを失った時に
            '選択されているテキストが強調表示されたままに設定します。
            TextBox1.HideSelection = False
            MessageBox.Show(dp + 1 & " 文字目に見つかりました")
            TextBox1.HideSelection = True   '元に戻す(強調表示をしない)
            np = dp + SearchChar.Length  '見つかった文字の次の位置
        Else
            MessageBox.Show("指定の文字は見つかりませんでした")
            Exit Do
        End If
    Loop
End Sub

 図1.上記実行結果
 vb2013string08_1

このページのトップへ移動します。 2.文字列を文末から検索し最初に見つかった位置を取得

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
'文字列を文末から検索し最初に見つかった位置を取得
    TextBox1.Text = "ABC123abcabcあいうABC123abcあいうABC123abcあいう"
    Dim SearchChar As String = "abc"
    Dim dp As Integer
    dp = TextBox1.Text.LastIndexOf(SearchChar)     '検索
    If dp >= 0 Then         '見つかった場合
        TextBox1.Select(dp, SearchChar.Length)
        TextBox1.HideSelection = False
        MessageBox.Show(dp + 1 & " 文字目に見つかりました") '結果 34文字目
        TextBox1.HideSelection = True
    Else
        MessageBox.Show("指定の文字は見つかりませんでした")
    End If
End Sub

このページのトップへ移動します。 3.文字列内に指定の文字がいくつあるか調べる

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
'文字列内に指定の文字がいくつあるか調べる
    Dim str1 As String = "ABC123abcabcあいうABC123abcあいうABC123abcあいう"
    Dim str2 As String = "abc"
    Dim lenN As Integer
    lenN = str1.Length - str1.Replace(str2, "").Length
    MessageBox.Show("文字列、[" & str1 & "]" & vbCrLf & "内の中に [" & _
                str2 & "] は " & lenN \ str2.Length & " 個 ありました。")
    Debug.WriteLine((str1.Length - str1.Replace(str2, "").Length) \ str2.Length)     '結果 4
End Sub

このページのトップへ移動します。 4.


このページのトップへ移動します。 5.


このページのトップへ移動します。 6.


このページのトップへ移動します。 検索キーワード及びサンプルコードの別名(機能名)





このページのトップへ移動します。