Zitat von
shmia:
Du könntest die Daten effektiver (=schneller) mit der
Move Prozedure bewegen.
Aber Achtung: wäre das Array von Typ: array of string; wäre dies verboten.
Deine Prozedure könnte so aussehen (ungetestet!!!):
Delphi-Quellcode:
procedure AppendArray(var aArray: TIntegerArray; aValues: TIntegerArray);
var
TmpLen : integer;
lp : byte;
begin
TmpLen := Length(aArray);
SetLength(aArray,TmpLen+Length(aValues));
Move(aValues[0], aArray[TmpLen], Length(aValues)*sizeof(Integer));
end;
Bei Verwendung von Move muss man höchste Vorsicht walten lassen, damit kein Speicher "zerschossen" wird.
PS: ich habe den Namen der Procedure geändert; ist so deutlich sprechender
CopyMemory ruft doch auch nur Move auf. Damit hat man nur das zusätzliche Stack schaufeln wenn man anstelle von Move Copy Memory verwendet.