5

TBytes组合数组的最佳方法是什么?

所有数组的大小相同。我希望将 的内容Array2添加到 的末尾Array1Array3末尾Array2等等。

4

2 回答 2

9

要将两个合并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;
于 2011-09-22T20:30:47.867 回答
1

您可以使用类似字符串的操作:

var
  LArray1, LArray2, LMerged: TBytes;
begin
  ...
  LMerged := LArray1 + LArray2;
end;

或者您可以使用系统的“Concat”功能:

var
  LArray1, LArray2, LMerged: TBytes;
begin
  ...
  LMerged := Concat(LArray1, LArray2);
end;
于 2020-02-13T00:15:36.497 回答