2011-09-22 6 views
2

Quelle est la meilleure façon de combiner TBytes baies?Meilleure façon de combiner plusieurs baies TBytes

Tous les tableaux sont de la même taille. Je veux que le contenu de Array2 soit ajouté à la fin de Array1, Array3 à la fin de Array2, et ainsi de suite.

+1

Définissez "fusion". Voulez-vous dire en ajouter un à la fin de l'autre, ou en entremêlant (array1 [0], array2 [0], array1 [1], array2 [1])? Sont-ils de la même taille? Veuillez éditer votre question pour clarifier ce que vous essayez de faire, afin que nous puissions essayer de vous aider. Merci. :) –

+0

tous les tableaux sont de la même taille et je veux comme cela array1 append array2 append array3 ..... –

Répondre

6

Pour fusionner deux TBytes ensemble, vous devez allouer un troisième TBytes qui est la longueur totale des deux TBytes individuels, puis copiez les octets des deux à l'intérieur. Par exemple:

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

Cela ne répond pas à la question posée, qui était spécifiquement comment le faire «en boucle à travers eux». –

+0

J'ai lu la question en demandant comment faire une boucle dans une liste de tableaux, pas comment faire une boucle dans le contenu d'un tableau particulier. –

+0

Je ne sais pas comment ça pourrait. "Comment ** fusionner TBytes Array en passant en boucle à travers eux **." - quelle partie de "fusionner ... en les bouclant" dit "parcourir une liste de tableaux"? Si la question est "comment réparer l'injection de carburant sur ma Ferrari", la réponse n'est pas "acheter un hybride à la place - ils sont meilleurs pour l'environnement" (bien que cela puisse être une alternative valable (et peut-être mieux) * * à offrir après avoir répondu à la question initiale). :) –

Questions connexes