Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Unterordner in Array speichern (https://www.delphipraxis.net/139829-unterordner-array-speichern.html)

delphi-n 7. Sep 2009 17:26

Re: Unterordner in Array speichern
 
wieso klappt eig.

Delphi-Quellcode:
procedure GetDirectories(DirName: string; const sl: TStrings);
var Rec: TSearchRec;
begin
  sl.Clear;
  DirName := IncludeTrailingPathDelimiter(DirName);
  if FindFirst(DirName + '*.*', faDirectory, Rec) = 0 then
    try
      repeat
        if (Rec.Name <> '.') and (Rec.Name <> '..') and ((Rec.Attr and faDirectory) = faDirectory) then
          sl.Add(Rec.Name);
      until FindNext(Rec) <> 0;
    except  //(statt finally)
      ShowMessage('Kein Ordner gefunden');
      SysUtils.FindClose(Rec);
    end;
end;
nicht?

himitsu 7. Sep 2009 17:36

Re: Unterordner in Array speichern
 
was heißt "wieso klappt eig. nicht"?

WAS GEHT NICHT und WELCHE FEHLERMELDUNGEN werden angezeigt.

delphi-n 7. Sep 2009 17:51

Re: Unterordner in Array speichern
 
Zitat:

da kommt "listenindex überschreitet das max...bla"
mich wundert aber, dass ich gar kein max eingegeben habe??

sry, wenn das vlt. etwas doof klingt, aber wie erstellt man das "maximum"?
nun ja, der fehler, dass in einem Ordner keine Unterordner sind.

Da dachte ich, könnte man das mit except abfangen; aber es ist alles wie voher (mit finally).

rollstuhlfahrer 7. Sep 2009 19:09

Re: Unterordner in Array speichern
 
HI,

also bei mir ist dem FindFirst/FindNext-Gespann eigentlich völlig egal, ob es irgendwelche Unterordner/Dateien gibt. Aber dass es dabei zu Fehlermeldungen kommt, ist mir neu. Und ob du nun Ordner hast oder nicht, weist du erst nachdem du Windows gefragt hast, ob es irgendwelche Ordner für dich parat hat. Das Ergebnis siehst du dann daran, dass am Ende in deiner Liste was drin ist.

Bernhard

PS: Sollen die Unterordner auch noch rekursiv dargestellt werden?

delphi-n 7. Sep 2009 19:14

Re: Unterordner in Array speichern
 
Zitat:

PS: Sollen die Unterordner auch noch rekursiv dargestellt werden?
ja, aber das hab ich schon mit einer listbox erledigt.

aber wenn wir schon dabei sind, wie ermittelt man die länge dieser ListBox, bzw. wie viele einträge sie hat?

rollstuhlfahrer 7. Sep 2009 19:16

Re: Unterordner in Array speichern
 
HI,

die Anzahl der Elememte einer Listbox gibts mit ListBox1.Items.Count!

Zitat:

Zitat von delphi-n
ja, aber das hab ich schon mit einer listbox erledigt.

Kannst du mir mal zeige, wie das dann aussieht. Kann mir das irgendwie nicht vorstellen.

Bernhard

delphi-n 7. Sep 2009 19:19

Re: Unterordner in Array speichern
 
Delphi-Quellcode:
ListBox1.Items.AddStrings(OL);
OL ist ein TString und dorthin hab ich voher die Ordner ausgelesen (s.o.)

rollstuhlfahrer 7. Sep 2009 19:37

Re: Unterordner in Array speichern
 
oups, zu schnell. Kann gelöscht werden

Bernhard

DeddyH 8. Sep 2009 08:08

Re: Unterordner in Array speichern
 
Dann zeig doch mal Deinen kompletten Code. Dass ein Ordner keine Unterordner enthält kann man btw. ja schlecht als Fehler ansehen, von daher ist das except IMHO sinnbefreit.

mkinzler 8. Sep 2009 08:15

Re: Unterordner in Array speichern
 
Rekursiv gesehen stösst man ja immer auf diesen Sachverhalt


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:30 Uhr.
Seite 3 von 4     123 4      

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