Ordner nach Text Durchsuchen
Verfasst: 22.05.2009 23:08
Da ich Heute mittag einen Ordner mit 100Php nach einem Wort absuchen musste ich aber kein Tool kannte und mir auch Google nicht geholfen hat , hab ich mir kurzer Hand was eigenes geschrieben.
Gerade noch en Beispiel dazu geschrieben ....
Vieleicht kann man es ja gebrauchen oder auch erweitern(auch wenn es nichts besonders ist)
Vieleicht hab ich Ts-Soft auf eine Idee gebracht damit ein Plugin für seinen Commander zu machen?
Was man vieleicht besser hätte machen können
-Unterordner durchsuchen
-Alle ergebnisse auflisten
-Weitersuchen
Gerade noch en Beispiel dazu geschrieben ....
Vieleicht kann man es ja gebrauchen oder auch erweitern(auch wenn es nichts besonders ist)
Vieleicht hab ich Ts-Soft auf eine Idee gebracht damit ein Plugin für seinen Commander zu machen?
Was man vieleicht besser hätte machen können
-Unterordner durchsuchen
-Alle ergebnisse auflisten
-Weitersuchen
Code: Alles auswählen
Global Pattern.b
Global Zeile.l
NewList Suche.s()
SuchOrdner$ = PathRequester("Bitte wählen Sie einen Pfad aus", "C:\")
Suchwort$ = InputRequester("Suchwort", "Bitte Suchwort eingeben", "")
Procedure Findwort(SuchOrdner$, SuchWort$, Pattern$ = "", Unterordner = 0)
Shared Suche(), Anzahl.l
If Not Pattern$
Pattern$ = "*.*"
EndIf
If Right(SuchOrdner$, 1)<>"\"
SuchOrdner$ + "\"
EndIf
exam = ExamineDirectory(#PB_Any, SuchOrdner$, "*.*")
If Exam
While NextDirectoryEntry(exam)
d$ = DirectoryEntryName(exam)
If DirectoryEntryType(exam) = #PB_DirectoryEntry_File
Pattern.b = 0
If Pattern$ = GetExtensionPart(d$)
Pattern.b = 1
ElseIf pattern$ = "*.*"
Pattern.b = 1
EndIf
If ReadFile(0, SuchOrdner$ + d$) And Pattern.b = 1
While Eof(0) = 0
Zeile$ = ReadString(0)
Zeile.l + 1
Anfang.l = FindString(Zeile$, Suchwort$, 0)
If Anfang.l
Datei$ = d$
AddElement(Suche())
Suche() = Suchordner$ + Datei$
AddElement(Suche())
Suche() = Str(Zeile.l)
AddElement(Suche())
Suche() = Str(Anfang.l)
Anzahl.l + 1
EndIf
Wend
Zeile.l = 0
CloseFile(0)
EndIf
ElseIf d$<>"." And d$<>".."
If Unterordner = 1
Findwort(SuchOrdner$ + d$, SuchWort$, Pattern$)
EndIf
EndIf
Wend
FinishDirectory(exam)
EndIf
If Not anzahl.l
ProcedureReturn 0
Else
ProcedureReturn Anzahl.l
EndIf
EndProcedure
Anzahl.l = Findwort(SuchOrdner$, SuchWort$, "", 0)
If Anzahl.l
Debug "Treffer: " + Str(Anzahl.l)
Debug ""
ForEach Suche()
Debug Suche()
Nexte + 1
If nexte = 3
nexte = 0
Debug "-----"
EndIf
Next
Else
Debug "Suche Erfolglos"
EndIf