Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Zeilen einer Memo in Array? (https://www.delphipraxis.net/80878-zeilen-einer-memo-array.html)

FordPerfekt 16. Nov 2006 19:55


Zeilen einer Memo in Array?
 
Hi,
Nach langer Zeit als stiller Mitleser habe ich mich nun regestriert und sage Hallo :hi: zur Community!
Ich habe hier im Forum eine procedure gefunden, die mir Ordner innerhalb eines anderen auflistet:

Delphi-Quellcode:
Procedure FindDirs(DirPath: String; StringList:TStrings; Recurse: Boolean = false);
var SR:TSearchRec;
i:integer;
begin
  if AnsiLastChar(DirPath)^ <> '\'
  then DirPath:=DirPath + '\';
  try
    { im angegebenen Verzeichniss nach Unterordnern suchen -- }
    if FindFirst(DirPath+'*.*',faDirectory,SR)=0 then
    repeat
      { wenn SR ein Ordner ist und nicht '.' und '..' heißt, dann... }
      if ((SR.Attr and faDirectory)<>0) and (SR.Name <> '.') and (SR.Name <> '..') then
      begin
        { ...füge den Ordner der StringList (z.B. einer Listbox(.Items)) hinzu }
        StringList.Add(DirPath+SR.Name); // s.u. Erläuterung
        { wenn Recurse = true, dann durchsuche den aktuellen Ordner (SR.Name) nach Unterordnern }
        if Recurse then FindDirs(DirPath+SR.Name,StringList,true);
      end;
    until FindNext(SR) <> 0; // wenn keine Unterordner mehr gefunden wurden, Suche beenden
  finally
    FindClose(SR); // Search Handle schließen, da es nicht mehr gebraucht wird
  end;
end;

//Aufruf:
  FindDirs('C:',memo1.Lines);
Ich lass mir die einzelnen Verzeichnisse zeilenweiße in ner Memo ausgeben!
Soweit alles klar!
Nun wollte ich die einzelnen Zeilen in ein Array tun:

Delphi-Quellcode:
var
dirs:Array of string;
i: Integer;
begin
for i:= 0 to Memo1.lines.count do
dirs[i]:=memo1.Lines[i];
end;
Aber es kommt immer eine Meldung wegen Zugriffsverletzung!
Wie bekomme ich die Zeilen des Memos in mein array?

mfg
FordPerfekt

mkinzler 16. Nov 2006 19:57

Re: Zeilen einer Memo in Array?
 
Du mußt den dynamischen Array zuerst mit setLength dimensionieren. Außerdem muß es
Delphi-Quellcode:
for i:= 0 to Memo1.lines.count-1
heißen.

FordPerfekt 16. Nov 2006 20:22

Re: Zeilen einer Memo in Array?
 
Vielen Dank!
Hat wunderbar funktioniert!

mfg
FordPerfekt

ste_ett 16. Nov 2006 21:12

Re: Zeilen einer Memo in Array?
 
Nicht vergessen, den dynamisch erstellten Arary wieder mit Finalize(); freizugeben. :)

Cyberbob 16. Nov 2006 21:50

Re: Zeilen einer Memo in Array?
 
Muss mann das immer machen?
Uns hat man in der Schule gesagt, delphi würde das selbst handlen.

Gruss
Christian


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:27 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 by Thomas Breitkreuz