Array.copy from C# to Delphi
本文关键字:to Delphi from copy Array | 更新日期: 2024-11-04 15:39:48
我有 C# 中的下一个代码。我需要将其转换为Delphi,但我被困在C#的Array.copy中。
也许我累了,没有看到显而易见的。我在 delphi 中的数组复制函数总是返回空字节。
这是我正在尝试的:
C# code:
byte[] buffer = new byte[200];
byte[] tmpArray = new byte[16];
int lenToCopy = 4;
//fill buffer here
buffer=ReadBuffer();
Array.Copy(buffer, 2, tmpArray, 5, lenToCopy);
德尔福密码:
var lenToCopy:integer;
temparray, buffer:TBytes;
....
begin
lenToCopy := 4;
setlength(tmpArray,16);
fillchar(tmpArray[0],length(tmpArray),0);
buffer:=GetBuffer();// buffer is ok here
tmpArray:=ArrayCopy(buffer, 2, tmpArray, 5, lenToCopy); //here is the problem: I get an empty tmpArray result
end;
function ArrayCopy(src:TBytes;ixsource:integer;dest:TBytes;ixdest:integer;len:integer):TBytes;
begin
SetLength(result, len+ixdest);
Move(src[ixsource],dest[ixdest],len);
result:=dest;
end;
这个呢?
NewArray := Copy(OldArray, startIndex, Count);
如果需要复制到数组的中间,也可以这样做:
NewArray := Copy(TmpArray, 0, ixDest) + Copy(Buffer, 0, Len) + Copy(TmpArray, ixDest + Len, MaxInt);
当然,这不会是超级高性能的,但它会起作用。
我只是从这里的臀部射击...这也至少需要Delphi 10 Seattle。