文字列中から指定の文字を検索する (3個) (SNo.018) 1.文字列の先頭から指定の文字を検索し見つかった位置から継続して検索 2.文字列を文末から検索し最初に見つかった位置を取得 3.文字列内に指定の文字がいくつあるか調べる |
|
使用コントロール | Button1 〜 Button3 Label1 TextBox1 |
その他条件 | WindowsXP(Vista) Visual Basic 2005(VB2008) |
★ 文字列の先頭から指定の文字を検索し見つかった位置から継続して検索
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.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 |
|
★ 文字列を文末から検索し最初に見つかった位置を取得 Private Sub Button2_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button2.Click '文字列を文末から検索し最初に見つかった位置を取得 TextBox1.Text = "ABC123abcabcあいうABC123abcあいうABC123abcあいう" Dim SearchChar As String = "abc" Dim dp, np 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 |
|
★ 文字列内に指定の文字がいくつあるか調べる Private Sub Button3_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button3.Click '文字列内に指定の文字がいくつあるか調べる Dim str1 As String = "ABC123abcabcあいうABC123abcあいうABC123abcあいう" Dim str2 As String = "abc" Debug.WriteLine((str1.Length - str1.Replace(str2, "").Length) \ str2.Length) '結果 4 End Sub |
2005/09/06
VBレスキュー(花ちゃん)
VB.NET2003 VB2005