Hallo Leute,
hilft ja alles nix, Macros' Argumente sind nicht von der Hand zu weisen. Habe rumgesucht und einen Code gefunden, den ich inhaltlich einigermaßen verstehe und bei dem ich mir zutraue, die eine oder andere erforderliche Anpassung hinzubekommen. Nämlich den hier:
http://forums.purebasic.com/english/vi ... p?t=24887
Code: Alles auswählen
Procedure SearchDirectory(dir$, pattern$, List dList.s(), level.l = 0)
Protected eName$
NewList Dirs.s()
If (level = 0)
ClearList(dList())
EndIf
If Right(dir$, 1) <> "\"
dir$ + "\"
EndIf
If ExamineDirectory(0, dir$, "")
While NextDirectoryEntry(0)
If DirectoryEntryType(0) = #PB_DirectoryEntry_Directory
eName$ = DirectoryEntryName(0)
If (eName$ <> ".") And (eName$ <> "..")
AddElement(Dirs())
Dirs() = eName$ + "\"
EndIf
EndIf
Wend
FinishDirectory(0)
If ExamineDirectory(0, dir$, pattern$)
While NextDirectoryEntry(0)
eName$ = DirectoryEntryName(0)
If (eName$ <> ".") And (eName$ <> "..")
AddElement(dList())
dList() = dir$ + eName$
If DirectoryEntryType(0) = #PB_DirectoryEntry_Directory
dList() + "\"
EndIf
EndIf
Wend
FinishDirectory(0)
EndIf
EndIf
If ListSize(Dirs())
ForEach Dirs()
SearchDirectory(dir$ + Dirs(), pattern$, dList(), level + 1)
Next
EndIf
If (level = 0)
ForEach dList()
dList() = Mid(dList(), Len(dir$) + 1, Len(dList()))
Next
SortList(dList(), 2)
EndIf
EndProcedure
NewList FilesAndFolders.s()
SearchDirectory("C:\WINDOWS", "sys*", FilesAndFolders())
Debug "Found " + Str(ListSize(FilesAndFolders())) + " object(s)"
ForEach FilesAndFolders()
Debug FilesAndFolders()
Next
End
Wenn ein User als Laufwerk "C:\" angibt und als Suchmaske "*.*", dann rödelt die Maschine u. U. eine quälend lange Zeit, bis alles gefunden wurde. Ich brauche also so etwas wie einen "Not-Ausschalter". Habe aber nur eine viel zu vage Vorstellung davon, wie das mit den Events abläuft.
Wenn ich einen Button hätte, der eine (globale) Variable entsprechend setzt und bei jedem neu gefundenen Unterverzeichnis diese Variable abgefragt werden würde, würde das funktionieren? Oder wird der Buttonklick erst bearbeitet, wenn die Routine fertig abgearbeitet ist? Würde man mit einen "kleinen" Delay Zeit für die Eventabfrage schaffen, ohne die Suchroutine zu sehr zu verzögern?
Bin mit 21 erstmals mit Computern in Kontakt gekommen und konnte mich daher in meiner Jugend ganz auf den Alkohol konzentrieren. Bin nun seit fast 40 Jahren programmiertechnisch konstant auf Anfänger-Level, konnte jedoch beim Thema Alkohol eine gewisse Virtuosität erreichen.
Irgendwas muss man ja gut können.