![]() |
FindFile function funktzt net
Hya,
nun hab ich den selben Psydo fehler bei meiner FindFile Funktion wie bei der FindPath bzw FindDir funktion. Er such und er findet. Jedoch wird der fund nur in meine listbox ausgegeben - Result wird nicht gefüllt. Könnte es einer mal testen ob es bei ihm läuft ich schnall nicht warum nicht geht.
Delphi-Quellcode:
in der Listbox wird der Pfad mit der gefundenen file sehr schön angezeigt aber nicht in der messagebox
function TForm1.FindFile(ToBeFound, ASearchPath : string) : string;
var ASearchRec : TSearchRec; begin Result := ''; if ASearchPath[Length(ASearchPath)] <> '\' then ASearchPath := ASearchPath + '\'; if FindFirst(ASearchPath + '*.*', faAnyFile, ASearchRec) = 0 then begin repeat if CompareText(ToBeFound, ASearchRec.Name) = 0 then begin ListBox1.Items.Add(ASearchPath + ASearchRec.Name); Result := ASearchPath; Break; end; until FindNext(ASearchRec) <> 0; end; FindClose(ASearchRec); if FindFirst(ASearchPath + '*.*', faDirectory, ASearchRec) = 0 then begin repeat if ((ASearchRec.Attr and faDirectory) = faDirectory) and (ASearchRec.Name <> '..') and (ASearchRec.Name <> '.') then begin FindFile(ToBeFound, ASearchPath + ASearchRec.Name); end; until FindNext(ASearchRec) <> 0; end; FindClose(ASearchRec); end; procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage(FindFile(Edit1.Text,'E:\')); end; da Result = '' ist anstatt das da ASearchPath drin ist Greetz Master_BB |
Re: FindFile function funktzt net
Du musst ASearchPath als Result übergeben, damit du die Funktion so aufrufen kannst, also einfach in der Funkiotn:
Delphi-Quellcode:
Edit, also ich meine am Ende der Funktion.
Result := ASearchPath;
|
Re: FindFile function funktzt net
wiso am ende der funktion?
was ist wenn er nichts findet? es reicht doch wenn Result der Path zugewiesenwird wenn ToBeFound mit der gefundenen Datei übereinstimmt... oder nicht? und wo genau soll ich result nocheinmal zuweisen? |
Re: FindFile function funktzt net
Ich hab deinen Code gerade getestet, in meiner ListBox wird gar nichts angezeigt. :gruebel:
|
Re: FindFile function funktzt net
naja du solltest nach etwas suchen was es auch gibt und das verzeichnis vieleicht ändern
wenn du kein e:\ hast - bei mir zeit er mir die file an |
Re: FindFile function funktzt net
Ach ne, blöd bin ich auch net!
|
Re: FindFile function funktzt net
Delphi-Quellcode:
Ich hab mal korrigiert, und es mit // gekennzeichnet
function TForm1.FindFile(ToBeFound, ASearchPath : string) : string;
var ASearchRec : TSearchRec; begin Result := ''; if ASearchPath[Length(ASearchPath)] <> '\' then ASearchPath := ASearchPath + '\'; if FindFirst(ASearchPath + '*.*', faAnyFile, ASearchRec) = 0 then begin repeat if CompareText(ToBeFound, ASearchRec.Name) = 0 then begin ListBox1.Items.Add(ASearchPath + ASearchRec.Name); // Result := ASearchPath; // Wieso weisst du den Pfad zu?? muss das nicht heissen Result := ASearchPath + ASearch.Name; Break; end; until FindNext(ASearchRec) <> 0; end; FindClose(ASearchRec); // if Result <> '' then exit; // Die Zeile bitte einfügen, weil du musst die Unterverzeichnise nicht durchsuchen // wenn du die Datei schon gefunden hast if FindFirst(ASearchPath + '*.*', faDirectory, ASearchRec) = 0 then begin repeat if ((ASearchRec.Attr and faDirectory) = faDirectory) and (ASearchRec.Name <> '..') and (ASearchRec.Name <> '.') then begin // FindFile(ToBeFound, ASearchPath + ASearchRec.Name); // Hier der selbe fehlder wie anfangs bei deiner FindDir funktion. Result := FindFile(ToBeFound, ASearchPath + ASearchRec.Name); if Result <> '' then break; // Abbruch wenn was gefunden wurde im Unterverzeichnis end; until FindNext(ASearchRec) <> 0; end; FindClose(ASearchRec); end; |
Re: FindFile function funktzt net
ah THX ratanplan99
ich weise nur den pfad zu da ich nur den pfad benötige wo die gesuchtefile drin ist - aber es klappt jetzt JETZT hab ich auch endlich den fehler von FindDir gesehn |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz