![]() |
Dynamisches Array in Liste schreiben?
Hallo,
ich habe ein 2-dimensionales dynamisches Array und möchte Teile davon in eine Liste schreiben (um sie dann zu sortieren). Leider funktioniert zwar die Zuweisung des kompletten Arrays auf die Liste, denn dynamische Arrays sind ja Pointer, aber die einzelnen Elemente sind vom Typ 'Real'. Was kann ich da tun? Die relevanten Abschnitte meines Codes:
Delphi-Quellcode:
[edit=mkinzler]Code-Tag durch Delphi-Tag ersetzt Mfg, mkinzler[/edit]
var x: Array of Array of Real;
xlist: TList; ... SetLength(x,nn,nn); x[i,j]:= ... // x wird mit Werten gefüllt xlist.Create; for i:=0 to nn-1 do for j:=0 to nn-1 do if x[i,j] > testvalue xList.Add(x[i,j]); ... |
Re: Dynamisches Array in Liste schreiben?
"Leider..." :gruebel:
Hmm...
Delphi-Quellcode:
Ist es das was Du suchst? Wenn Du es noch formatieren willst, nimm FloatToStrF(...)
xList.Add(FloatToStr(x[i,j]));
|
Re: Dynamisches Array in Liste schreiben?
Hallo ysveikata,
Die Adresse des Real Wertes abspeichern mit
Code:
xList.Add(@x[i,j]);
Zitat:
|
Re: Dynamisches Array in Liste schreiben?
Zitat:
![]() |
Re: Dynamisches Array in Liste schreiben?
Hallo GHorn, ist das jetzt ab D2009 neu, dass eine TList auch andere Werte als Pointe aufnehmen kann? :?:
Ist ja so einiges geändert worden, womöglich auch dass :gruebel:
Delphi-Quellcode:
lg. Astat
xList.Add(FloatToStr(x[i,j]));
|
Re: Dynamisches Array in Liste schreiben?
Vermutlich hat er an eine TStringlist gedacht.
|
Re: Dynamisches Array in Liste schreiben?
Zitat:
lg. Astat |
Re: Dynamisches Array in Liste schreiben?
Vielen Dank erstmal, das Eintragen in die Liste mit @x[i,j] funktioniert.
Wie läuft das jetzt mit TListSortCompare um nach den Werten zu sortieren? Oder gibt s vielleicht doch ne andere Möglichkeit? Grüße |
Re: Dynamisches Array in Liste schreiben?
Delphi-Quellcode:
Aber für was soll das Ganze gut sein?
function VergleicheReal(Item1, Item2: Pointer): Integer;
begin Result := Sign(Real(Item1^) - Real(Item2^)); end; Liste.Sort(VergleicheReal); |
Re: Dynamisches Array in Liste schreiben?
Besten Dank, Sign kennt mein Delphi zwar nicht, aber mit if und else hat s funktioniert...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20: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-2025 by Thomas Breitkreuz