![]() |
Tipp 0214
|
Textsuche in Multiline-TextBox
|
 |
|
Autor/Einsender: Datum: |
|
Michael Werner 31.07.2012 |
|
Entwicklungsumgebung: |
|
VB.Net 2008 |
Framework: |
|
2.0 |
|
|
In einer mehrzeiligen TextBox wird nach einem Text gesucht. Einstellbar ist, ob eine Groß- bzw. Kleinschreibung berücksichtigt werden soll oder nicht.
Die Textbox wird beim Aufruf in einer For Each-Schleife zeilenweise durchlaufen.
Mit ToLower wird bei entsprechender Voreinstellung eine Groß-Klein-Differenzierung
verhindert. Ausgegeben wird die Zeilennummer und Position des gefundenen
Suchstrings sowie die gefundenen Strings in einer ListBox aufgelistet.
|
|
|
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e _
As System.EventArgs) Handles MyBase.Load
tbMainText.Text = _
"Hallo Leute von heute." & vbNewLine & _
"Guten Tag. " & vbNewLine & _
"Heute ist einer von den guten Tagen." & vbNewLine & _
"Gut, was?" & vbNewLine & _
"Dies ist GUT so."
tbSearchText.Text = "Gut"
End Sub
'Text suchen in Multiline-TextBox
Private Sub btnSearch_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnSearch.Click
Dim search As String = ""
Dim position As Integer
Dim zeilenummer As Integer
lstFound.Items.Clear()
lstLocation.Items.Clear()
'Multiline-TextBox zeilenweise durchlaufen
For Each line As String In tbMainText.Lines
zeilenummer += 1
'Mit ToLower bei tbSearchText.Text und line wird
'eine Groß-Klein-Differenzierung verhindert.
If ckbTextSensitiv.Checked Then
search = tbSearchText.Text
position = line.IndexOf(search, 0)
Else
search = tbSearchText.Text.ToLower
position = line.ToLower.IndexOf(search, 0)
End If
If position > -1 Then
'Gefunden in Zeile an Position
lstLocation.Items.Add("Zeile " & CStr(zeilenummer) & _
" an Position " & CStr(position))
'Gefundene Teistrings in Listbox ausgeben
lstFound.Items.Add(line.Substring(position, search.Length))
End If
Next
End Sub
Private Sub btnExit_Click(ByVal sender As System.Object, ByVal _
e As System.EventArgs) Handles btnExit.Click
Me.Close()
End Sub
'Listboxen synchronisieren
Private Sub lstFound_SelectedIndexChanged(ByVal sender As _
System.Object, ByVal e As System.EventArgs) Handles _
lstFound.SelectedIndexChanged
lstLocation.SelectedIndex = lstFound.SelectedIndex
End Sub
Private Sub lstLocation_SelectedIndexChanged(ByVal sender As _
System.Object, ByVal e As System.EventArgs) Handles _
lstLocation.SelectedIndexChanged
lstFound.SelectedIndex = lstLocation.SelectedIndex
End Sub
End Class
| |
|
|
|
Windows-Version |
98/SE |
 |
|
ME |
 |
|
NT |
 |
|
2000 |
 |
|
XP |
 |
|
Vista |
 |
|
Win
7 |
 |
|
|
|
Download (13
kB)
|
Downloads bisher: [ 176 ]
|
|
|