Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Datei-Suche wirft Exception auf (https://www.delphipraxis.net/133408-datei-suche-wirft-exception-auf.html)

Douglas Quintaine 1. Mai 2009 12:33


Datei-Suche wirft Exception auf
 
Ich muss nach Dateien suchen, brauche also deren Position. Der Code aus der Codelib (http://www.delphipraxis.net/internal...ect.php?t=2464) wirft leider stets die folgende Fehlermeldung auf:
Zitat:

Erste Gelegenheit für Exception bei $7C812A5B. Exception-Klasse EAccessViolation mit Meldung 'Zugriffsverletzung bei Adresse 00455A8C in Modul 'Project1.exe'. Lesen von Adresse 7A83668E'. Prozess Project1.exe (3064)
Exakt dieselbe Meldung kommt beim Code von SirT. Was mache ich falsch? :-(

Danke


Delphi-Quellcode:
procedure FindAllFiles(var FileList: TStrings; RootFolder: string; Mask: string = '*.*'; Recurse: Boolean = True);
var
  SR: TSearchRec;
begin
  RootFolder := IncludeTrailingPathDelimiter(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);
    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); //hier tritt die Exception auf
      end;
    until FindNext(SR) <> 0;
  finally
    FindClose(SR);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  test: TStrings;
begin
  FindAllFiles(test, 'C:', 'dd.txt', true);
  Memo1.Lines := test;
end;

himitsu 1. Mai 2009 12:41

Re: Datei-Suche wirft Exception auf
 
FileList muß natürlich auch existieren :zwinker:


Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  test: TStrings; // oder test: TStringList;
begin
  test := : TStringList.Create;
  FindAllFiles(test, 'C:', 'dd.txt', true);
  Memo1.Lines := test;
  test.Free;
end;

// oder direkt

procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Lines.Clear;
  FindAllFiles(Memo1.Lines, 'C:', 'dd.txt', true);
end;

Douglas Quintaine 2. Mai 2009 17:35

Re: Datei-Suche wirft Exception auf
 
Natürlich, selber idiotischer Fehler wie immer. :wall:

Danke Dir.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:34 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