Hallo Go2EITS,
Du schreibst:
Zitat:
... Bei der Suche hatte ich vergessen, die Liste im Speicher, wenn TStringList.Count > 0ist. mit TStringList.clear zu initialisieren. ...
Bedeutet das, das Du erst eine Stringliste mit den gefundenen Dateien füllst, und dann damit die TCheckListBox.Items füllst oder Assignesd?
Warum füllst Du in deiner Suchfunktion nicht gleich die TCheckListBox.Items und sparst Dir somit die Stringliste.
Weitere Fehler:
Sind folgende Dateien vorhanden:
D:\Test1.bak
D:\Test2.baked
und wird nach *.bak gesucht, so findet er beide Dateien!
Dabei kan die (hier willkürliche) Endung *.baked irgend eine andere wichtige Bedeutung haben.
Dies liegt daran, das bei
FindFirst(IncludeTrailingPathDelimiter(Directory) + Filter, cAttr, SearchRec) ... FindNext
der Filter nicht korrekt ausgewertet wird.
Du mußt also jede gefundene Datei noch mal selbst überprüfen:
- Function StrSatisfy aus Key Objects Library (C) 2000 by Kladov Vladimir (
http://bonanzas.rinet.ru (E)) (hoffentlich noch gültig!)
- Zumindest aber die Länge der Dateierweiterung (hier 3) testen. (Am schnellsten von hinten bis zu PathDelim zählen).
Fuchtel