6

オフセット付きのメモリブロックをコピーしたいのですが、可能ですか?

これは私がこれまでに持っているコードです:

const
  SOURCE: array [0..5] of Byte = ($47, $49, $46, $38, $39, $61);
var
  Destination: Pointer;
begin
  // This is a full copy
  Move(SOURCE, Destination^, SizeOf(SOURCE));

  // If i want to copy from the third byte, is it possible?
  // I imagine the code should be, but it cannot be compiled.
  Move(Slice(SOURCE^, {Offset=}2)^, Destination^, SizeOf(SOURCE) - 2);
end;
4

2 に答える 2

9

何を達成したいのかは完全には明確ではありませんが、次のようになります。

MoveMemory(pointer(NativeUInt(Destination) + 2), @SOURCE[0], SizeOf(SOURCE) - 2)

私はあなたが実際に欲しいと思うが

MoveMemory(pointer(NativeUInt(Destination) + 2), @SOURCE[2], SizeOf(SOURCE) - 2)
于 2012-05-20T15:38:52.063 に答える
2

配列の一部をコピーするために使用Move()するには、次のようにします。

Move(SOURCE[Offset], Destination^, SizeOf(SOURCE)-Offset); 
于 2012-05-22T17:55:54.357 に答える