组合TBytes
数组的最佳方法是什么?
所有数组都具有相同的大小。我希望将Array2
的内容添加到Array1
的末尾,Array3
添加到Array2
的末尾,依此类推。
答案 0 :(得分:8)
要将两个TBytes
合并在一起,您必须分配第三个TBytes
,这是两个TBytes
的总长度,然后将两者中的字节复制到其中。例如:
var
arr1, arr2, merged: TBytes;
begin
...
SetLength(merged, Length(arr1) + Length(arr2));
if arr1 <> nil then Move(arr1[0], merged[0], Length(arr1));
if arr2 <> nil then Move(arr2[0], merged[Length(arr1)], Length(arr2));
end;
答案 1 :(得分:1)
您可以使用类似字符串的操作:
var
LArray1, LArray2, LMerged: TBytes;
begin
...
LMerged := LArray1 + LArray2;
end;
或者您可以使用系统的“ Concat”功能:
var
LArray1, LArray2, LMerged: TBytes;
begin
...
LMerged := Concat(LArray1, LArray2);
end;