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;

terça-feira, 4 de outubro de 2016

DELPHI - Adicionar barra no final de um caminho

Reações: 
Quantas vezes nos deparamos com a adição da barra no final de um caminho de diretórios no windows?

Bem basta utilizar a função: "IncludeTrailingBackslash"
Ex:



var
  Local : String;
begin
  Local := 'C:\windows';
  Local := IncludeTrailingBackslash(Local);
  // A partir deste momento a variável do local ficará: 'C:\windows\', com a barra no final do texto.
end;

Max Gehringer