Analitcs

Pesquisar no conteúdo do blog.atlabs.com.br

quinta-feira, 20 de outubro de 2016

DELPHI - Stream To Byte Array

Reações: 
Retirado do site: https://www.experts-exchange.com/questions/21343717/Copy-a-memory-stream-into-a-byte-array.html
type
  TByteArray  =  Array of Byte;

function StreamToByteArray(Stream: TStream): TByteArray;
begin

  // Check stream
  if Assigned(Stream) then
  begin
     // Reset stream position
     Stream.Position:=0;
     // Allocate size
     SetLength(result, Stream.Size);
     // Read contents of stream
     Stream.Read(result[0], Stream.Size);
  end
  else
     // Clear result
     SetLength(result, 0);

end;

procedure TForm1.Button1Click(Sender: TObject);
var  bytes:      TByteArray;
     strmMem:    TMemoryStream;
     lpBytes:    Array [0..100] of Byte;
     dwIndex:    Integer;
begin

  for dwIndex:=0 to 100 do lpBytes[dwIndex]:=dwIndex;

  strmMem:=TMemoryStream.Create;
  strmMem.Write(lpBytes, SizeOf(lpBytes));

  bytes:=StreamToByteArray(strmMem);

  if CompareMem(bytes, @lpBytes, 100) then
     ShowMessage('Success')
  else
     ShowMessage('Failure');

  strmMem.Free;

end;

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.

Max Gehringer