![]() |
Re: Findfirst,Findnext schulung
OK
habe es jetzt so
Delphi-Quellcode:
aber geht das jetzt auch kurzer das war ja ohne endungenunit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,DateUtils, FileCtrl; type TFindFilesOption = (ffoExcludePath, ffoExcludeExt); TFindFilesOptions = set of TFindFilesOption; TForm1 = class(TForm) ListBox1: TListBox; Button1: TButton; procedure Button1Click(Sender: TObject); private function FindFiles(const fileExpr: String; files: TStrings;options: TFindFilesOptions): Boolean; { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} function TForm1.FindFiles(const fileExpr: String; files: TStrings; options: TFindFilesOptions): Boolean; var sr2: TSearchRec; path2: string; extWanted: Boolean; begin Result := True; files.Clear; files.BeginUpdate; if ffoExcludePath in options then path2 := '' else path2 := ExtractFilePath(fileExpr); extWanted := not (ffoExcludeExt in options); if FindFirst(fileExpr, faArchive, sr2) = 0 then begin repeat if extWanted then files.Add(path2 + sr2.Name) else files.Add(ChangeFileExt(path2 + sr2.Name, '')); until FindNext(sr2) <> 0; FindClose(sr2); end else Result := False; files.EndUpdate; end; procedure TForm1.Button1Click(Sender: TObject); begin FindFiles('c:\WINDOWS\'+ '\*', ListBox1.Items, [ffoExcludePath, ffoExcludeExt]); end; end. |
Re: Findfirst,Findnext schulung
Ja sicher ohne Endungen, hast Du doch auch gesagt. Sonst nimm mal das ffoExcludeExt aus den Optionen.
|
Re: Findfirst,Findnext schulung
kannst du mir vielleicht ein beispiel geben wie z.b alle .ini dateien aus dem ordenr windows gelesen werden und in der listbox angezeigt werden vieleicht verstehe ich es dann besser
sorry für meine dumme fragen will es aber verstehen |
Re: Findfirst,Findnext schulung
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Rec: TSearchRec; i: integer; begin i := FindFirst('C:\Windows\*.ini',faAnyFile,Rec); while i = 0 do begin ListBox1.Items.Add(Rec.Name); i := FindNext(Rec); end; FindClose(Rec); end; |
Re: Findfirst,Findnext schulung
@DaddyH: fast richtig. FindClose ist nicht notwendig wenn FindFirst fehl schlägt:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Rec: TSearchRec; begin if FindFirst('C:\Windows\*.ini',faAnyFile,Rec) = 0 then begin repeat ListBox1.Items.Add(Rec.Name); until FindNext(Rec) <> 0; FindClose(Rec); end; end; |
Re: Findfirst,Findnext schulung
Aber es schadet auch nicht. :zwinker:
|
Re: Findfirst,Findnext schulung
alle zwei cods gehen
hab ich das mit meiner erklärung richtig verstanden
Delphi-Quellcode:
was sagt jetzt dieses .name aus
procedure TForm1.Button1Click(Sender: TObject);
var Rec: TSearchRec; begin if FindFirst('C:\Windows\*.ini',faAnyFile,Rec) = 0 then//da eins gefunden = 0 begin repeat ListBox1.Items.Add(Rec.Name); until FindNext(Rec) <> 0; //wenn nichts gefunden dann 1 also schließen FindClose(Rec); end; end; |
Re: Findfirst,Findnext schulung
genau. 0 = kein Fehler
ungleich 0 = Fehler Ein Fehler ist zum Beispiel wenn keine weiteren Dateien vorhanden sind. |
Re: Findfirst,Findnext schulung
Name ist ein Feld des Records TSearchRec. Da steht halt der Dateiname drin.
|
Re: Findfirst,Findnext schulung
also kannich anstatt denn namen mir auch andere atributte der dateien anzeigen lassen??
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:51 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