Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi FindFirst (https://www.delphipraxis.net/53280-findfirst.html)

TheAn00bis 13. Sep 2005 15:00


FindFirst
 
Hi,

Ich möchte alle Dateien vom Typen "ini" im Ordner finden, in dem die Application ausgeführt wird.
Da ich dann natürlich auch auf die Dateien zugreifen will, brauche ich deren Namen.

Über die Suche bin ich auf Find First und FindNext gestoßen. Allerdings weiß ich erstens nicht, wie ich dort den Pfad der Anwendung angeben kann, zweitens, was das zweite Parameter "Attr" soll (ist auch in der Hilfe nicht erklärt!) und drittens übergibt mir die Funktion ja einen Integer. Aber wie komme ich über den Integer auf den Namen der Datei?

Und wenn mir FindFirst dann einen Datei-Namen genannt hat, wie kann ich diesen dann Speichern? Als String?

Ich habe die DP schon durchsucht, aber immer nur Hinweise auf die Suchfunktion gefunden...

Wäre nett, wenn mir einer helfen könnte.


edit: Erstes Problem gelöst, den aktuellen Pfad bekomme ich mit ExtractFilePath(ParamStr(0)).

ibp 13. Sep 2005 15:08

Re: FindFirst
 
also die delphi oh gibt mir das
Delphi-Quellcode:
function FindFirst(const Path: string; Attr: Integer; var F: TSearchRec): Integer;

TheAn00bis 13. Sep 2005 15:15

Re: FindFirst
 
Zitat:

Zitat von ibp
also die delphi oh gibt mir das
Delphi-Quellcode:
function FindFirst(const Path: string; Attr: Integer; var F: TSearchRec): Integer;

Mir auch, aber wie hilft mir das? Wie ich in dem Post geschrieben habe, kann ich mit Attr nichts anfangen. Außerdem übergiebt mir FindFirst eine 0 wenn er was gefunden hat. Aber dann habe ich eine 0, nicht den Namen...

ibp 13. Sep 2005 15:25

Re: FindFirst
 
dann lies doch mal weiter in der oh! da steht drin was man bei attr alles angeben kann und dein ergebnis ist dann in F zu finden! ausserdem ist bei mir in der oh noch ein beispiel an dem man sich versuchen kann!

TheAn00bis 13. Sep 2005 15:34

Re: FindFirst
 
Zitat:

Zitat von ibp
dann lies doch mal weiter in der oh! da steht drin was man bei attr alles angeben kann und dein ergebnis ist dann in F zu finden! ausserdem ist bei mir in der oh noch ein beispiel an dem man sich versuchen kann!

Wow, das Bsp habe ich gar nicht bemerkt. Und ich dachte in F kommen die Parameter rein, aber die kommen ja in Attr!

Danke!

DevilsCamp 13. Sep 2005 15:45

Re: FindFirst
 
Hier ein kleines Beispiel:

Delphi-Quellcode:
procedure GetFiles(const VerzeichnisMitWildcards: String; var Liste: TStringList);
var
  search : TSearchRec;
  dateien: String;
  verz  : String;
begin
  Liste.Clear;
  verz := ExtractFilePath(VerzeichnisMitWildcards);
  if verz[Length(verz)]<>'\' then
    verz:= verz+'\';
  dateien:= ExtractFileName(VerzeichnisMitWildcards);

  if FindFirst(VerzeichnisMitWildcards, faArchive, search)=0 then
  begin
    repeat
      Liste.Add(verz+search.Name);
    until FindNext(search)<>0;
  end;
  FindClose(search);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  list: TStringList;
begin
  list := TStringList.Create;
  GetFiles('c:\irgendwo\*.ini', list);
  ListBox1.Items.Assign(List);
  list.Free;
end;

So sollte es richtig sein.

XXcD 7. Feb 2007 09:53

Re: FindFirst
 
Wie kriege ich das zum laufen wenn ich Datein aus dem Internet laden will???

Klaus01 7. Feb 2007 10:13

Re: FindFirst
 
Wie meinst Du das? Liegen die Dateien auf einem FTP oder HTTP Server?
Wenn ja, da wird FindFirst nicht funktionieren.
Bei FTP solltest Du dir eine Liste des Directories liefern lassen
und bei HTTP mußt Du wohl oder übel die Webseite durchsuchen/parsen.

Die gewonnenen Daten kannst Du dann in einer Schleife verarbeiten
und die Dateien dann nach und nach abholen.

Grüße
Klaus

XXcD 7. Feb 2007 10:15

Re: FindFirst
 
Also es ist ein FTP Server(meiner) gibt es vielleicht nen Tutorial wie man das macht????

Klaus01 7. Feb 2007 10:19

Re: FindFirst
 
Einen Einstieg mit den Indy Komponenten findest Du hier -> http://www.dsdt.info/tutorials/indy/?page=4

Dort ist auch erklärt wie man ein Directory Listing erhält.

Und bitte mach einen neunen Thread auf, wenn es um ein anderes Thema geht.

Grüße
Klaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:03 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz