2011-09-22 56 views
2

組合TBytes陣列的最佳方式是什麼?組合多個TBytes陣列的最佳方式

所有陣列的大小相同。我想把Array2的內容加到Array1的末尾,Array3Array2的末尾,等等。

+1

定義「合併」。你的意思是將一個追加到另一個的末尾,或混合(array1 [0],array2 [0],array1 [1],array2 [1])?他們是一樣的大小?請編輯您的問題,使其更清楚您要做什麼,以便我們可以嘗試和幫助您。謝謝。 :) –

+0

所有數組都是相同的大小,我想這個array1追加array2追加array3 ..... –

回答

6

要合併兩個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

這並沒有回答問的問題,具體如何做'循環他們'。 –

+0

我讀到的問題是如何循環訪問數組列表,而不是如何遍歷特定數組的內容。 –

+0

我不知道它如何。 「如何通過循環**來合併TBytes Array **。」 - 通過循環遍歷它們的「合併...」中的哪一部分「通過數組列表循環」?如果問題是「我如何解決我的法拉利燃油噴射問題」,答案並不是「購買混合動力車 - 它們對環境更好」(儘管這可能是一種有效的(也可能更好的))替代方案*在回答原始問題後提供)。 :) –