VB.Net Textdateien in einem Verzeichnis nach Wörtern durchsuchen?

1 Antwort

Wenn es sich um einfache Textdateien handelt (was auch auf Dateien zutrifft, die Quellcode enthalten, wie .cs, .vb, .py, etc.) kannst du die Dateien mit einem StreamReader öffnen, auslesen und dann den Inhalt durchsuchen. Das ginge z.B. so:

' der Wert wird bei jedem Schleifendurchlauf auf die nächste Datei gesetzt
Dim path As String
Dim sr As New StreamReader(path)
' so liest du eine Datei komplett aus
Dim content As String = sr.ReadToEnd()
Dim searchParams As String() = textBox1.Text.Split(" ")

' per Schleife durch alle Items des Array iterieren und statt 0 dann die Zählervariable verwenden
If content.Contains(searchParams(0)) Then
    ' liefert die String.Contains(String)-Methode true zurück, kannst du deine Aktion ausführen
End If

' am Ende musst du den StreamReader schließen
sr.Close()
' alternativ geht das auch mit dem Statement Using; das schließt den StreamReader automatisch

Wie du die Dateien im Verzeichnis x per Schleife durchläufst, kannst du zur Not im Web suchen (weiß grade leider nicht mehr, wie das geht :)).

Übrigens wäre es besser, wenn du einen Button hättest, den man anklickt. Denn das TextChanged-Event wird jedes Mal dann ausgelöst, wenn ein Zeichen eingegeben oder entfernt wurde. Das würde unnötig viel Datenverkehr auf der HDD / SSD verursachen. Stell dir vor, in dem Verzeichnis liegen 1024 Dateien. Bei jedem Tastendruck, der Text verändert, würden diese dann geöffnet, ausgelesen und geschlossen werden.

Hier noch ein Link zum Using-Statement in VB.Net:
Using-Statement (VB.Net)

Woher ich das weiß:Studium / Ausbildung