11 Vote

Delphi/Lazarus: Charger Byte Array à partir de MemoryStream

Question de Invité | 19/11/2023 à 15:04

J'ai récemment lu le tutoriel sur les tableaux d'octets dans Delphi et Lazarus. Très pratique, mais pour le moment, je suis désespéré de charger un TMemoryStream dans un tel tableau d'octets.

Étant donné est un memory stream et je voudrais copier les octets de ce stream dans un array d'octets. Quelqu'un peut-il m'aider ?

RépondrePositifNégatif
2Meilleure Réponse2 Voix

Pas de problème, dans l'exemple suivant, je vais vous montrer comment récupérer les données d'un memory stream dans un tableau d'octets.

var
  MS: TStream;
  BA_IN, BA_OUT: array of Byte;
begin   
  
  // créer quelques données
  SetLength(BA_IN, 2);
  BA_IN[0] := $FF; 
  BA_IN[1] := $FE;

  // créer memory stream
  ms := TMemoryStream.Create;
  try   
    // écrire des données dans le memory stream
    ms.WriteBuffer(BA_IN, 2);

    // lire les données du memory stream dans un byte array
    ms.Position := 0;
    SetLength(BA_OUT, ms.Size);
    ms.Read(BA_OUT[0], ms.Size);
  finally
    ms.Free;
  end; 

end;

Pour avoir quelque chose dans notre stream, nous écrivons d'abord quelques octets dans le stream (array BA_IN). Ensuite, nous écrivons le contenu du stream dans le tableau d'octets BA_OUT.
20/11/2023 à 17:48

RépondrePositif Négatif
Répondre

Sujets Connexes

Avis Important

Veuillez noter: Les contributions publiées sur askingbox.com sont des contributions d’utilisateurs et ne doivent pas remplacer les conseils d’un professionnel. Ils ne sont pas vérifiés par des indépendants et ne reflètent pas nécessairement l’opinion de askingbox.com. Apprendre encore plus.

Participer

Posez votre propre question ou écrivez votre propre article sur askingbox.com. Voici comment.