Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Array kopieren (https://www.delphipraxis.net/57299-array-kopieren.html)

glkgereon 18. Nov 2005 16:34


Array kopieren
 
Hi

ich versuche im Moment einen Array zu kopieren.

Kann ich das so machen:

Delphi-Quellcode:
var A1, A2: array of Integer;
begin
  SetLength(A1,25);
  DoSomethingWithA1;
  SelLength(A2,Length(A1));
  Move(A1,A2,SizeOf(A1));
end;

shmia 18. Nov 2005 16:38

Re: Array kopieren
 
Zitat:

Zitat von glkgereon
ich versuche im Moment einen Array zu kopieren.
Kann ich das so machen:
Delphi-Quellcode:
var A1, A2: array of Integer;
begin
  SetLength(A1,25);
  DoSomethingWithA1;
  SelLength(A2,Length(A1));
  Move(A1,A2,SizeOf(A1));
end;

"Lustigerweise" kopiert man ein dynamisches Array mit copy:
Delphi-Quellcode:
A2 := Copy(A1, 0, Length(A1)-1);
<edit>Obacht: dyn. Arrays beginnen mit Index 0</edit>

glkgereon 18. Nov 2005 16:40

Re: Array kopieren
 
Zitat:

Zitat von shmia
Zitat:

Zitat von glkgereon
ich versuche im Moment einen Array zu kopieren.
Kann ich das so machen:
Delphi-Quellcode:
var A1, A2: array of Integer;
begin
  SetLength(A1,25);
  DoSomethingWithA1;
  SelLength(A2,Length(A1));
  Move(A1,A2,SizeOf(A1));
end;

"Lustigerweise" kopiert man ein dynamisches Array mit copy:
Delphi-Quellcode:
A2 := Copy(A1, 1, Length(A1);

Oh :oops:
Ich dachte bisher immer, copy märe nur für Strings^^

Danke!

Achso, noch ne Frage:
muss ich das Array vorher noch auf die richtige Länge bringen?
wie ist das wenn Length(A2) vorher schon ungleich 0 ist?
kann es da zu MemoryLeaks kommen?

himitsu 18. Nov 2005 17:24

Re: Array kopieren
 
Ja, Copy gibt es für Strings ... aber wenn man bedenkt, das die Strings (LongStrings/AnsiStrings) intern in Wirklichkeit auch nur dynamische Arrays sind, dann ist es nicht verwunderbar, daß es Copy und seine Verwandten auch vür die "normalen" Arrays gibt :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz