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