我在C#中有下一個代碼。我需要將它轉換爲Delphi,但是我被卡在C#中的Array.copy中。從C#到Delphi的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);
Delphi代碼:
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;
SetLength(dest,len + ixdest); –
Dalija Prasnikar。謝謝。這是一個很好的建議。 –