Лучший способ объединить несколько массивов TBytes - PullRequest
5 голосов
/ 22 сентября 2011

Как лучше всего объединить TBytes массивы?

Все массивы имеют одинаковый размер.Я хочу, чтобы содержимое Array2 было добавлено в конец Array1, Array3 в конец Array2 и т. Д.

1 Ответ

9 голосов
/ 23 сентября 2011

Чтобы объединить два 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;
...