组合多个TBytes阵列的最佳方法

时间:2011-09-22 19:07:22

标签: delphi bytearray delphi-xe2

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

所有数组都具有相同的大小。我希望将Array2的内容添加到Array1的末尾,Array3添加到Array2的末尾,依此类推。

2 个答案:

答案 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;