Programmieren - alles kontrollieren 4.939 Themen, 20.672 Beiträge

Delphi 5 - Prozedur für Dateisuche

The_Wise / 7 Antworten / Flachansicht Nickles

Hi !
Ich brauche für ein Programm eine Dateisuche, das mir beispielsweise alle Dateien mit der Endung TXT in einer ListBox anzeigt.
Mein Problem ist, das die Prozedur die ich gemacht habe, nicht alles findet.

Hier die Prozedur:

procedure TMainForm.SearchFile (Pfad: String);
var sr: TSearchRec;
r: Integer;
begin
r:= FindFirst(Pfad + \'\\*.*\', faAnyFile, sr);
while r = 0 do
begin
if Copy(sr.name, 1, 1) \'.\' then
begin
if (sr.attr0) and (faDirectory0) then
SearchFile(Pfad + \'\\\' + sr.name)
else
if Uppercase(System.Copy(sr.name, Pos(\'.\',sr.name), 4)) = \'.TXT\' then
ListBox.Items.Add(Pfad + \'\\\' + sr.name)

end;
Application.ProcessMessages;
r:=FindNext(sr);
end;
FindClose(sr);

end;





Ich verwende rekursive Programmierung. Meinen Fehler habe ich noch nicht entdeckt. Kann mir jemand helfen ?

bei Antwort benachrichtigen
The_Wise Nachtrag zu: „Delphi 5 - Prozedur für Dateisuche“
Optionen

Habe die ganze Prozedur umgeschrieben:

procedure TMainForm.SearchFile (Pfad: String);
var rec: TSearchRec;
begin
FindFirst(Pfad+'*.*', faAnyFile, rec);
FindNext(rec);
while FindNext(rec) = 0 do
begin
if rec.Attr = faDirectory then
SearchFile(pfad+rec.Name+#92) //92=' \\ '
else
if RightFile(rec.name) = true then
ListBox1.Items.Add(Pfad + '\\' + rec.Name);

Application.ProcessMessages;
end;

FindClose(rec);
end;

Nun funkt es.
Dennoch danke für die Hilfe !

bei Antwort benachrichtigen