findallfiles und faDirectory

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 1196
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Manjaro Linux, Mint und Windows 10 ,Lazarus 3.99, FPC-Version: 3.3.1
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

findallfiles und faDirectory

Beitrag von kralle »

Moin,

Code: Alles auswählen

 FindAllFiles(Ergebnis, SelectDirectoryDialog1.FileName,'*.*',true,faDirectory);  
wenn ich das richtig verstehe, kann ich "FindAllFiles" durch die Angabe von "faDirectory" dazu bringen, nur Verzeichnisse zu finden.
Leider scheint das nicht zu funktionieren.
Oder nutze ich habe ich das nur falsch verstanden.

Gruß HEiko
OS: Manjaro Linux, Linux Mint und Windows 10
FPC-Version: 3.3.1 , Lazarus 3.99
+ Delphi XE7SP1

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: findallfiles und faDirectory

Beitrag von m.fuchs »

Nimm doch einfach FindAllDirectories wenn du nur Verzeichnisse willst.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

Re: findallfiles und faDirectory

Beitrag von Michl »

Zum Suchen von Verzeichnissen (wie m.fuchs schrieb):

Code: Alles auswählen

  FindAllDirectories(Ergebnis, SelectDirectoryDialog1.FileName, True);  
In der Doku http://lazarus-ccr.sourceforge.net/docs ... files.html steht nichts über den Parameter und ich weiß auch nicht, wofür er ist. Interpretieren würde ich ihn so, wie du. Wenn niemand hier mehr weiß, könnte man mal in der Mailing-List nachfragen.

Habe es eben mal getestet, das Ergebnis ist immer gleich, außer das Bit von faDirectory ist gesetzt, dann wird ein Unterverzeichnis mit durchsucht, ansonsten nicht. Alle anderen Bits werden hier bei mir ignoriert. Komisch

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 1196
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Manjaro Linux, Mint und Windows 10 ,Lazarus 3.99, FPC-Version: 3.3.1
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: findallfiles und faDirectory

Beitrag von kralle »

Moin,
m.fuchs hat geschrieben:Nimm doch einfach FindAllDirectories wenn du nur Verzeichnisse willst.
das wäre doch zu einfach :-)
Ehrlich, ich habe nicht gewusst das es den Befehl gibt. In meinem Freepascal Buch steht er nicht drin und eine "Freepascal FindAll" bei Tante Google, brachte auch keine Treffer (wobei heute scheint Google eh zu spinnen).

Danke, für den Hinweis.

Gruß Heiko
OS: Manjaro Linux, Linux Mint und Windows 10
FPC-Version: 3.3.1 , Lazarus 3.99
+ Delphi XE7SP1

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 1196
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Manjaro Linux, Mint und Windows 10 ,Lazarus 3.99, FPC-Version: 3.3.1
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: findallfiles und faDirectory

Beitrag von kralle »

Moin,
Michl hat geschrieben: In der Doku http://lazarus-ccr.sourceforge.net/docs ... files.html steht nichts über den Parameter und ich weiß auch nicht, wofür er ist.
Aber im PopUp wenn man auf dem Befehl steht.
Michl hat geschrieben: Interpretieren würde ich ihn so, wie du.
Das berühigt mich .

Gruß Heiko
Dateianhänge
parameter.jpg
OS: Manjaro Linux, Linux Mint und Windows 10
FPC-Version: 3.3.1 , Lazarus 3.99
+ Delphi XE7SP1

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: findallfiles und faDirectory

Beitrag von m.fuchs »

http://wiki.freepascal.org/FindAllFiles hat geschrieben:findallfiles looks for files matching the searchmask in the SearchPath directory and if specified its children and returns a stringlist with the resulting filenames.
Es geht also erst einmal um das Suchen von allen Dateien.

Code: Alles auswählen

function FindAllFiles(const SearchPath: String; SearchMask: String = ''; SearchSubDirs: Boolean = True; DirAttr: Word = faDirectory): TStringList; overload;
Der Name DirAttr sagt mir, dass es nur der Attributsfilter für die Verzeichnisse die durchsucht werden ist. Nicht für die Dateien. Deswegen auch der Standardwert faDirectory:

Code: Alles auswählen

procedure FindAllFiles(AList: TStrings; const SearchPath: String; SearchMask: String = ''; SearchSubDirs: Boolean = True; DirAttr: Word = faDirectory); overload;
Ist ein bisschen unglücklich formuliert und seltsam geschrieben.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Antworten