11 Stimme

Delphi/Lazarus: Byte Array aus MemoryStream laden

Frage von Gast | 02.02.2014 um 19:03

Ich habe kürzlich euer Tutorial zu Byte Arrays in Delphi/Lazarus gelesen. Sehr praktisch, allerdings verzweifle ich gerade daran, einen TMemoryStream in einen solchen Byte Array zu laden.

Gegeben ist also ein Memory Stream und ich würde gerne die Bytes aus diesem Stream in einen Byte Array kopieren. Kann mir jemand dabei helfen?

AntwortenPositivNegativ
3Beste Antwort3 Stimmen

Kein Problem, in dem folgenden Beispiel zeige ich dir, wie man die Daten aus dem Memory Stream in einen Byte Array bekommt.

var
  MS: TStream;
  BA_IN, BA_OUT: array of Byte;
begin   
  
  // ein paar Daten erstellen
  SetLength(BA_IN, 2);
  BA_IN[0] := $FF; 
  BA_IN[1] := $FE;

  // Memory Stream erstellen 
  ms := TMemoryStream.Create;
  try   
    // Daten in den Memory Stream schreiben
    ms.WriteBuffer(BA_IN, 2);

    // Daten aus Memory Stream in Byte Array schreiben
    ms.Position := 0;
    SetLength(BA_OUT, ms.Size);
    ms.Read(BA_OUT[0], ms.Size);
  finally
    ms.Free;
  end; 

end;

Damit etwas in unserem Stream steht, schreiben wir als erstes einige Bytes in den Stream hinein (Array BA_IN). Anschließend schreiben wir den Inhalt des Streams in den Byte Array BA_OUT.
03.02.2014 um 13:48

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.