Hallo,
ich probiere jetzt schon längere Zeit herum, komme aber zu keiner schönen Lösung.
Ich möchte eine Funktion schreiben, die ein Array zurück gibt, dessen Länge variabel sein soll.
Diese Prozedur soll wie folgt aufgerufen werden:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var liste : array of string;
begin
explode('-', 'Mein Name - ist - Stefan', liste); {Länge des dyn. Array soll in explode gesetzt werden}
end;
In der procedure explode würde ich dann gern so verfahren:
Delphi-Quellcode:
procedure TForm1.explode(separator, str: String; var liste: array of string); {hier ist Teil 1 des Problems}
var n:integer;
begin
n:=0;
repeat
if ... then begin
inc(n)
setlength(liste, n); {hier ist Teil 2 des Problems}
liste[n] := ...
end;
end;
Leider lässt die herkömmliche Deklaration eines Arrays als Parameter keine Unterscheidung zwischen dynamischem und statischem Array zu.
Wie kann ich dieses Problem umgehen/lösen?
Wäre ein dynamisches Array evtl. auch als Rückgabewert einer function realisierbar? Diese Lösung wäre ja noch ein wenig eleganter. Ich würde allerdings gern vermeiden, einen eigenen Typ zu deklarieren, wie es unter
http://www.delphipraxis.net/internal...amisches+array vorgeschlagen wird.
Wäre wirklich nett, wenn mir jemand helfen würde.
mfg
changlee