合并多个TBytes数组的最佳方法

问题描述 投票:5回答:2

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

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

delphi bytearray delphi-xe2
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;

0
投票

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

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

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

var
  LArray1, LArray2, LMerged: TBytes;
begin
  ...
  LMerged := Concat(LArray1, LArray2);
end;
© www.soinside.com 2019 - 2024. All rights reserved.