Description |
Copies Count bytes from the index SourceIndex in SourceBuffer to TargetIndex in TargetBuffer.
It does not matter what the primitive data types are in each array - the Buffer class treats each as a block of bytes.
|
| Notes | Static methods are not methods of an object - they are simply class functions or procedures available at any time.
|
|
Microsoft MSDN Links |
System
System.Buffer
|
|
|
Copying from a Byte Array to an Int16 Array |
program Project1;
{$APPTYPE CONSOLE}
var
byteBuffer : Array of Byte;
intBuffer : Array of Int16;
i : Integer;
begin
// Set the byte array to contain the number 17f (binary 10101010, hex AF)
SetLength(byteBuffer, 10);
for i := 0 to Length(byteBuffer)-1 do
byteBuffer[i] := 175;
// Display the byte array contents
for i := 0 to Length(byteBuffer)-1 do
Console.WriteLine('byteBuffer byte {0} = {1:X}',
i.ToString, TObject(byteBuffer[i]));
// Set the Int16 array length to be 5 (Int16 types take 2 bytes)
// And fill with zeros
SetLength(intBuffer, 5);
for i := 0 to Length(intBuffer)-1 do
intBuffer[i] := 0;
// Copy 4 bytes from the byte array to index 3 of the Int16 array
System.Buffer.BlockCopy(byteBuffer, 0, intBuffer, 3, 4);
// And display the Int16 array contents
Console.WriteLine;
for i := 0 to Length(intBuffer)-1 do
Console.WriteLine('intBuffer Integer {0} = {1:X}',
i.ToString, TObject(intBuffer[i]));
Console.ReadLine;
end.
| Show full unit code | byteBuffer byte 0 = AF
byteBuffer byte 1 = AF
byteBuffer byte 2 = AF
byteBuffer byte 3 = AF
byteBuffer byte 4 = AF
byteBuffer byte 5 = AF
byteBuffer byte 6 = AF
byteBuffer byte 7 = AF
byteBuffer byte 8 = AF
byteBuffer byte 9 = AF
intBuffer Integer 0 = 0
intBuffer Integer 1 = AF00
intBuffer Integer 2 = AFAF
intBuffer Integer 3 = AF
intBuffer Integer 4 = 0
|
|
|
|