fb:porticula NoPaste
Textsuche in einer Datei
Uploader: | Sebastian |
Datum/Zeit: | 06.10.2013 16:31:21 |
' Beispieldaten hier herunterladen:
' http://www.freebasic-portal.de/porticula/dummydata-txt-fuer-textsuche-beispiel-1658.html
Dim As Integer f = FreeFile, nr = 1, trefferZeile, trefferTotal = 0, i, numBegriffe = 0
Dim As String zeile, zeileUCase
Dim suchbegriffe(1 To ...) As String = { "Allo", "12" }
numBegriffe = UBound(suchbegriffe)
ReDim As String suchbegriffeUCase(1 To numBegriffe)
' Da wir spaeter ohne Beruecksichtigung von Gross-/Kleinschreibung suchen moechten
' ("case-insensitive"), fuellen wir zunaechst ein zweites Array, in dem alle Suchbegriffe
' in Grossschreibung stehen. So muessen wir die Umwandlung in Grossbuchstaben nicht fuer
' jede Zeile erneut machen (Performance-Vorteil bei vielen Zeilen in der Datei!).
For i = 1 To numBegriffe
suchbegriffeUCase(i) = UCase(suchbegriffe(i))
Next i
Open "dummydata.txt" For Input As #f
While Not Eof(f)
Print "Durchsuche Zeile " & nr & "... ";
Line Input #f, zeile
zeileUCase = UCASE(zeile)
trefferZeile = 0
For i = 1 To numBegriffe 'Alle Suchbegriffe durchprobieren fuer die Zeile
If (Instr(zeileUCase, suchbegriffeUCase(i)) > 0) Then
' In der grossgeschriebenen Version dieser Zeile kommt der grossgeschriebene
' Suchbegriff mit dem Index i vor. Wir haben einen Treffer!
Print ""
Print " -> Suchmuster " & chr(34) & suchbegriffe(i) & chr(34) & " gefunden!"
trefferZeile += 1
trefferTotal += 1
End If
Next i
If (trefferZeile < 1) Then
Print "-> Keine Treffer."
End If
nr += 1
Wend
Close #f
Print
Print "Suche beendet. Insgesamt " & trefferTotal & " Treffer. Beliebige Taste zum Beenden druecken."
Sleep
End