Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

Textsuche in einer Datei

Uploader:AdministratorSebastian
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