Hallo Tassilo,
suchst Du vielleicht move?
Zitat von
DelphiHilfe:
Copies bytes from a source to a destination.
Unit
System
Category
miscellaneous routines
procedure Move(const Source; var Dest; Count: Integer);
Description
Move copies Count bytes from Source to Dest. No range checking is performed. Move compensates for overlaps between the source and destination blocks.
Whenever possible, use SizeOf to determine the count.
Ein Beispiel ist in der DelphiHilfe zu finden.
[edit] habe auch mal ein kleines Beispiel gebastelt:
Delphi-Quellcode:
recTest = packed record
data1 : Byte;
data2 : Word;
end;
...
procedure TForm1.Button1Click(Sender: TObject);
var
ArrayTest : Array[0..5] of byte;
rec : recTest;
i : byte;
begin
for i:=0 to 5 do
ArrayTest[i] := 0;
rec.data1:=1;
rec.data2:=65500;
move(rec,ArrayTest[2],SizeOf(recTest));
Memo1.Lines.Add('Rec Size '+IntToHex(sizeof(recTest),2));
for i:=0 to 5 do
Memo1.Lines.Add(IntToHex(ArrayTest[i],2));
end;
Einen Hinweis noch, wenn Dein Record kein packed record ist,
dann ergibt Sizeof(recordType) die Größe von 4 Byte
und nicht wie man eigentlich erwarten würde von 3 Byte.
[/edit]
Grüße
Klaus