Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Statisches Array in dynamisches kopieren. (https://www.delphipraxis.net/178301-statisches-array-dynamisches-kopieren.html)

Popov 31. Dez 2013 11:44

Statisches Array in dynamisches kopieren.
 
Gibt es eigentliche eine elegante Lösung um ein statisches in ein dynamisches Array zu kopieren? Ich setze zuerst die Größe des dynamischen Arrays auf die des statischen und kopiere dann alles über eine Schleife. Das sind zwei Schritte und zwei Zeilen. Trotzdem, gibt es da evtl. etwas eleganteres?

Klaus01 31. Dez 2013 11:58

AW: Statisches Array in dynamisches kopieren.
 
Hallo,

sollte das nicht mit move funktionieren?

Grüße
und einen guten Rutsch
Klaus

Bjoerk 31. Dez 2013 12:45

AW: Statisches Array in dynamisches kopieren.
 
Man muß nur mit dem Startindex aufpassen:
Delphi-Quellcode:
  SetLength(Dest, Length(Source));
  Move(Source[Low(Source)], Dest[0], SizeOf(..) * Length(Source));
Wünsche euch allen auch einen guten Rutsch.

himitsu 31. Dez 2013 13:55

AW: Statisches Array in dynamisches kopieren.
 
Was ist denn in dem Array?

Bei einfachen Typen, wie Integern, geht es,
aber z.B. mit Strings würde man sich damit die Referenzzählung zerschießen und womöglich noch ein wunderschönes Speicherleck erschaffen.


System.FinalizeArray auf das Ziel und dann System.CopyArray (auch wenn es Array heißt, nimmt man die Funktion auch für einzelne Records, mit der Array-Länge 1)



PS: Delphi-Referenz durchsuchenMove => Delphi-Referenz durchsuchenTMoveArrayManager<T>
Auch wenn man total vergessen hat, diese Funktion wie oben genannt "sicher" zu machen. :wall:


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