AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

problem mit FindAllFiles (codelib)

Ein Thema von Marco Steinebach · begonnen am 13. Mai 2007 · letzter Beitrag vom 13. Mai 2007
Antwort Antwort
Marco Steinebach

Registriert seit: 4. Aug 2006
491 Beiträge
 
Delphi 5 Enterprise
 
#1

problem mit FindAllFiles (codelib)

  Alt 13. Mai 2007, 14:27
Huhu Listers,
ich hab gerade die wirklich gute Prozedur in der CodeLib gefunden, mir ist auch der Aufbau und so klar, aber ich fühl mich im Moment 'n bißchen wie ein echter Newbee.
1. kennt mein Delphi 5 kein IncludeTrailingPathDelimiter, sondern bestenfalls ein IncludeTrailingBackslash, aber schlimmer ist
2. das es behauptet bei
FindClose (sr); seien Cardinal und TSearchRec inkompatible typen. Seh ich auch ein, , aber laut hilfe gibt's FindClose zweimal, einmal mit Handle und einmeal mit SearchRec? Warum zum teufel weigert sich mein Compiler das zu fressen?
SysUtils ist drin?
Hiiiiiiilfe!!!!
Viele herzliche Grüße
Marco
... der ganze Code hängt hier drunter...
Delphi-Quellcode:
procedure FindAllFiles(
var FileList: TStrings;
RootFolder: string;
Mask: string = '*.*';
Recurse: Boolean = True);
var
SR: TSearchRec;
begin
RootFolder := IncludeTrailingBackslash(RootFolder);
if Recurse then
if FindFirst(RootFolder + '*.*', faAnyFile, SR) = 0 then
try
repeat
if SR.Attr and faDirectory = faDirectory then
// --> ein Verzeichnis wurde gefunden
//* *der Verzeichnisname steht in SR.Name
//* *der vollständige Verzeichnisname (inkl. darüberliegender Pfade) ist
//* * * *RootFolder + SR.Name
if (SR.Name <> '.') and (SR.Name <> '..') then
FindAllFiles(FileList, RootFolder + SR.Name, Mask, Recurse);
until FindNext(SR) <> 0;
finally
FindClose(SR); // hier knallt's dann!
end;
if FindFirst(RootFolder + Mask, faAnyFile, SR) = 0 then
try
repeat
if SR.Attr and faDirectory <> faDirectory then
begin
// --> eine Datei wurde gefunden
//* *der Dateiname steht in SR.Name
//* *der vollständige Dateiname (inkl. Pfadangabe) ist
//* * * *RootFolder + SR.Name
FileList.Add(RootFolder + SR.Name);
end;
until FindNext(SR) <> 0;
finally
FindClose(SR); // hier logischerweise auch.
end;
end;
Marco Steinebach
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: problem mit FindAllFiles (codelib)

  Alt 13. Mai 2007, 14:56
Hallo Marco,

du kannst die Reihenfolge der Units Windows und SysUtils in der Uses Klausel vertauschen oder deine Prozedur FindClose() mit dem Unit-Namen qualifizieren: SysUtils.FindClose(sr);

Grüße vom marabu
  Mit Zitat antworten Zitat
Marco Steinebach

Registriert seit: 4. Aug 2006
491 Beiträge
 
Delphi 5 Enterprise
 
#3

Re: problem mit FindAllFiles (codelib)

  Alt 13. Mai 2007, 20:08
Hi Marabu,
Zitat von marabu:
du kannst die Reihenfolge der Units Windows und SysUtils in der Uses Klausel vertauschen oder deine Prozedur FindClose() mit dem Unit-Namen qualifizieren: SysUtils.FindClose(sr);
Vielen herzlichen Dank! das war's!

Viele Grüße
Marco
Marco Steinebach
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#4

Re: problem mit FindAllFiles (codelib)

  Alt 13. Mai 2007, 21:53
Zitat von marabu:
du kannst die Reihenfolge der Units Windows und SysUtils in der Uses Klausel vertauschen oder deine Prozedur FindClose() mit dem Unit-Namen qualifizieren: SysUtils.FindClose(sr);
Boah! Wie ich das an Delphi hasse! Und zwar, dass er keine Fehlermeldung mit der Pflicht wirft, solche Name clashes durch den Unitnamen aufzulösen.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:11 Uhr.
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