Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Verzechniss: alle beinhaltenden Ordner ermitteln? (https://www.delphipraxis.net/119938-verzechniss-alle-beinhaltenden-ordner-ermitteln.html)

mkinzler 3. Sep 2008 13:43

Re: Verzechniss: alle beinhaltenden Ordner ermitteln?
 
Es übergibst doch eine TSerachRec-Struktur, in der steht doch alles

DeddyH 3. Sep 2008 13:43

Re: Verzechniss: alle beinhaltenden Ordner ermitteln?
 
Richtig, und was steht im TSearchRec?

LuCSteR 3. Sep 2008 13:57

Re: Verzechniss: alle beinhaltenden Ordner ermitteln?
 
Delphi-Quellcode:
//Ordnernamen in einem Verzeichnis ermitteln
procedure ListSubDirs(Dir: string; var sList: TStrings);
begin
  Dir:=TempDownloadDir
  ChangeCurrentDir(Dir);
  FindFirst(GetCurrentDir, faDirectory, sList);
  FindNext(sList);
end;
So siehts bis jetzt aus. In dem Fall findet er nur den ersten Ordner und den folgenden. So möchte ich es aber haben:
Delphi-Quellcode:
//Ordnernamen in einem Verzeichnis ermitteln
procedure ListSubDirs(Dir: string; var sList: TStrings);
begin
  Dir:=TempDownloadDir
  ChangeCurrentDir(Dir);
  FindFirst(GetCurrentDir, faDirectory, sList);
  while {letzter Ordner nicht gefunden} do FindNext(sList);
end;
Wie könnte ich den letzten Ordner ermitteln? Halt diese Schleife zum Ende zwingen?
Und ich verstehe immer noch nicht was ich mit den Longint-Werten anstellen soll? Was sagen die aus?

DeddyH 3. Sep 2008 13:59

Re: Verzechniss: alle beinhaltenden Ordner ermitteln?
 
Sry, aber bevor Du hier weiterfragst, solltest Du mal einen Blick in die Hilfe werfen, gewisse Grundlagen darf man schon voraussetzen. Und danach wirst Du über die DP-Suche zu FindFirst/FindNext einige Beispiele finden.

Aurelius 3. Sep 2008 14:01

Re: Verzechniss: alle beinhaltenden Ordner ermitteln?
 
Schau dir mal diesen Beitrag aus der Codelib an, ist eigentlich alles verständlich erklärt: http://www.delphipraxis.net/internal...ight=findfirst

LuCSteR 3. Sep 2008 14:04

Re: Verzechniss: alle beinhaltenden Ordner ermitteln?
 
Ein Blick in die Hilfe würde ich ja befürworten, wenn ich mit Delphi arbeiten könnte. Bei Lazarus gibt es keine lokale Hilfe. Und die Online-Hilfe ist leider nur eine kleine "Wiki"...

Grundlagen in Bezug auf was?

DeddyH 3. Sep 2008 14:10

Re: Verzechniss: alle beinhaltenden Ordner ermitteln?
 
Dann solltest Du aber kenntlich machen, dass Du mit Lazarus arbeitest. Ansonsten schau mal in der DP nach z.B. Hier im Forum suchenFindAllFiles

LuCSteR 3. Sep 2008 14:36

Re: Verzechniss: alle beinhaltenden Ordner ermitteln?
 
Naja habs ja im ersten Post angegeben: Sprache=Lazarus...

Also nun siehts so aus.
Delphi-Quellcode:
//Ordnernamen in einem Verzeichnis ermitteln
procedure ListSubDirs(Dir: string; var sList: TStrings);
var
  SR: TSearchRec;
 
begin
  Dir:=TempDownloadDir;
  if FindFirst(Dir, faDirectory, SR)=0 then
    sList.Add(SR.Name);
    try
      while FindNext(SR)<>0 do
        begin
          FindNext(SR);
          sList.Add(SR.Name);
        end;
    finally
      FindClose(SR);
    end;
end;
Denke das sollte so funktionieren. Der Compiler meckert aber beim finally:
Unit1.pas(287,19) Error: Incompatible type for arg no. 1: Got "TSearchRec", expected "LongWord"

Da steht aber: FindClose(Var F:TSearchRec);
Verstehe ich nicht ganz :s

---

Ich seh gerade das es FindClose 2 mal gibt. Ich seh aber nicht aus welcher Bibliothek mein FindClose ist. Weis das jmd.?

DeddyH 3. Sep 2008 14:43

Re: Verzechniss: alle beinhaltenden Ordner ermitteln?
 
SysUtils.FindClose

LuCSteR 3. Sep 2008 15:18

Re: Verzechniss: alle beinhaltenden Ordner ermitteln?
 
Beim kompilieren gibts keine Fehler aber bei der Nutzung :s

In der While-Schleife gibts nen Fehler bei: sList.Add(SR.Name);


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:21 Uhr.
Seite 2 von 4     12 34      

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