Delphi-PRAXiS
Seite 2 von 4     12 34      

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)

DeddyH 6. Sep 2009 18:04

Re: Unterordner in Array speichern
 
Lass das Array mal weg und nimm stattdessen TStrings. Dann ginge das ungefähr so (aus dem Kopf getippt, daher ungetestet):
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;
    finally
      SysUtils.FindClose(Rec);
    end;
end;

delphi-n 7. Sep 2009 13:53

Re: Unterordner in Array speichern
 
also ich hab jetzt das von oben eingegeben, aber bei


sl.Clear;


kommt der Fehler

"Zugriffsverletzung bei Adresse 00454C9A in Modul 'Projektname.exe'. Lesen von Adresse 00000000"


Woran kann das liegen?

himitsu 7. Sep 2009 14:00

Re: Unterordner in Array speichern
 
spontan geraten (und das wurde auch hier überall im Forum schon oft gesagt)

du muß die nötige StringList (TStrings/TStringList) vorher auch SELBER erstellen!

delphi-n 7. Sep 2009 14:06

Re: Unterordner in Array speichern
 
das hab ich oben in der var stehen:

Delphi-Quellcode:
OL: Tstrings;

und unten dann:

Delphi-Quellcode:
GetDirectories(Edit1.Text, OL);
[edit=mkinzler]Delphi-Tag eingefügt Mfg, mkinzler[/edit]

mkinzler 7. Sep 2009 14:07

Re: Unterordner in Array speichern
 
Und zwar mit
Delphi-Quellcode:
  OL := TStringList.Create;

delphi-n 7. Sep 2009 14:12

Re: Unterordner in Array speichern
 
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"?

DeddyH 7. Sep 2009 14:16

Re: Unterordner in Array speichern
 
Du kannst das Maximum nicht "erstellen", das richtet sich nach der Anzahl der Einträge. Vermutlich hast Du eine For-Schleife, in der Du bis Liste.Count statt Liste.Count - 1 durchläufst.

delphi-n 7. Sep 2009 14:19

Re: Unterordner in Array speichern
 
nein, mein fehler liegt woanders:

der soll wie gesagt die ordner finden. Nun hab ich dem ein Verz. ohne Ordner gegeben. :wall:

Da muss nat. voher ne abfrage rein, oder mit try und except.

himitsu 7. Sep 2009 14:21

Re: Unterordner in Array speichern
 
Zitat:

Zitat von mkinzler
Und zwar mit
Delphi-Quellcode:
  OL := TStringList.Create;

und nicht vergessen diese nachher mit OL.Free; wieder freizugeben ... also alles so wie man es von einer objektorientierten Programmierung her kennt :)

DeddyH 7. Sep 2009 14:28

Re: Unterordner in Array speichern
 
Zitat:

Zitat von delphi-n
nein, mein fehler liegt woanders:

der soll wie gesagt die ordner finden. Nun hab ich dem ein Verz. ohne Ordner gegeben. :wall:

Da muss nat. voher ne abfrage rein, oder mit try und except.

Du kannst doch vor dem Aufruf der Prozedur gar nicht wissen, ob Ordner enthalten sind. Eine Überprüfung kann also nur im Anschluss erfolgen.


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