![]() |
Arrays zusammenfügen
Hallo,
ich nutze die ![]() |
Re: Arrays zusammenfügen
Ja, kann man. Brauchst doch nur ein neues Array machen, wo du die beiden Teile nacheinander anhängst.
Stichworte: SetLength, for-Schleife, ... |
Re: Arrays zusammenfügen
Das erste Array mit SetLength auf die richtige Länge bringen, dann den Inhalt des zweiten mit CopyMemory rüberschnippsen. ;-)
|
Re: Arrays zusammenfügen
Zitat:
|
Re: Arrays zusammenfügen
So meinte ich das:
Delphi-Quellcode:
Mit Move müsste ich selber erst schauen wie das aussieht. ;-)
var
a, b: array of Integer; i, OldSize: Integer; begin // a und b als Beispiele erstellen SetLength(a, 5); SetLength(b, 4); for i := Low(a) to High(a) do a[i] := i; for i := Low(b) to High(b) do b[i] := i*10; // a vergrößern und b reinkopieren if Length(b) > 0 then begin OldSize := Length(a); SetLength(a, OldSize + Length(b)); CopyMemory(@a[OldSize], @b[0], Length(b) * SizeOf(b[0])); end; for i := Low(a) to High(a) do ShowMessage(InttoStr(a[i])); |
Re: Arrays zusammenfügen
Hi,
So ginge das mit Move:
Delphi-Quellcode:
Ich hoffe ich hab keinen Fehler drin :stupid:
var old: Integer;
begin old := Length(ArrayB); SetLength(ArrayB,old+Length(ArrayA); Move(ArrayA[0],ArrayB[old],Length(ArrayA)*SizeOf(ArrayA[0])); end; |
Re: Arrays zusammenfügen
Seid ihr jäckig?
Strings kopiert man nicht per Move und Co. :warn: zumindestens nicht ohne gewisse Dinge zu beachten. Explode liefert ein Array of String |
Re: Arrays zusammenfügen
Stimmt, dass es Strings sind und es damit einen Reference Counter gibt, daran habe ich nicht gedacht. :oops:
Dann bleibt noch mit for kopieren oder die Strings gleich in das richtige Array zu legen. |
Re: Arrays zusammenfügen
am besten so(Nicht getestet):
Delphi-Quellcode:
so müsste das eigentlich klappen.
procedure AddToArray(var aArray:array of string; const aSoruce:Array of String);
var i,c1,c2:Integer; begin c1:=Lenght(aSoruce); c2:=Lenght(aArray); SetLenght(aArray,c1+c2+1); for i:=0 to c1 do begin aArray[c2+i]:=aSoruce[i]; end; end; |
AW: Arrays zusammenfügen
Da dieser Eintrag bei diversen Suchmaschinen an oberster Stelle landet, wenn man nach "delphi zwei arrays verbinden" sucht, will ich die angegebene Methode noch korrigieren.
Delphi-Quellcode:
procedure AddToArray(var _alleStrings:Array of String; const _neueStrings:Array of String);
var i,c1,c2:Integer; begin c1 := Length(_alleStrings); c2 := Length(_neueStrings); SetLength(_alleStrings, c1 + c2); for i := 0 to c2-1 do begin _alleStrings[c1 + i] := _neueStrings[i]; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:26 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