![]() |
Pointer auf "Array of String" an Funktion übergebe
Hallihallo liebe DP-Gemeinde,
habe jetzt schon Google und die Boardsuche mehrfach missbraucht, aber irgendwie keine gute Erklärung gefunden.. Mein Problem: Ich habe ein Array of String mit ein paar Elementen. Am liebsten würde ich dieses Array einfach als "Result" der function zurückgeben, aber das geht irgendwie nicht.. FALLS es doch geht, bitte ich um einen Hinweis ;-) Dann habe ich mir gedacht: Kein Problem, machen wir das Array in der aufrufenden Funktion, übergeben den Pointer und schreiben dann direkt rein.. sooo.. naja, und da hörte das Hochgefühl auch schon wieder auf ^^ Ich bitte um ein How-To: "Pointer für Array of String erstellen & an eine Funktion übergeben & dort benutzen" Tausend Dank im Vorraus ;-) |
Re: Pointer auf "Array of String" an Funktion über
Du könntest auch eine TStringList nehmen, ansonsten müsstest du entweder einen neuen Typ "type TStringarray=array of string" definieren oder das fertige array als pointer von der aufrufenden Funktion übergeben.
|
Re: Pointer auf "Array of String" an Funktion über
Zitat:
|
Re: Pointer auf "Array of String" an Funktion über
Delphi-Quellcode:
Ich würde dir die TStringlist-Variante empfehlen. Die ist genau dafür gemacht. Ausserdem kann man mit einer StringList noch viel mehr machen (siehe: insert, move, delete, addstrings) und zugreifen kannst du damit auch, wie auf ein array "s:=list[1]"
procedure foo2(const list:Tstringlist);
begin //hier kann man alles der Liste ändern list.add('0'); list.add('2'); list.add(''); list.add('Ende'); end; procedure foo1(p:pointer); var b:array of string; begin //!!!hier nicht die Größe des arrays ändern!!! b:=p; b[0]:='0'; b[1]:='2'; b[9]:='Ende'; end; procedure TForm1.Button1Click(Sender: TObject); var a:array of string; i:integer; list:Tstringlist; begin //Beispiel mit array of string setlength(a,10); for i:=0 to 9 do a[i]:=''; foo1(a); for i:=0 to 9 do memo1.Lines.Add(a[i]); finalize(a); memo1.lines.add('------------'); //Beispiel mit Tstringlist list:=Tstringlist.Create; try foo2(list); memo1.lines.addstrings(list); finally list.free; end; end; |
Re: Pointer auf "Array of String" an Funktion über
Vielen Dank, is ja sau einfach :mrgreen: :mrgreen:
Habs mit der Array of String methode gelöst, brauche nur 4 feste Elemente.. DANKE FÜR DIE SCHNELLE HILFE! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:16 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