TMemoryStream --> string jak?

0

Mam problem z przerobieniem memorystream na string.

function LoadFromFile(const AFileName: string; MemoryStream: TMemoryStream): Boolean;
var
   aStream: TFileStream;
   iSize: byte;
  
begin
   Result := False;
   if not FileExists(AFileName) then
      Exit;

   try
      aStream := TFileStream.Create(AFileName, fmOpenRead or fmShareDenyWrite);
      aStream.Seek(-8*sizeof(byte), soFromEnd);
      MemoryStream.SetSize(8*sizeof(byte));
      MemoryStream.CopyFrom(aStream, 8*sizeof(byte));
      MemoryStream.Seek(0, soFromBeginning);
   finally
      aStream.Free;
   end;
   Result := True;

end;

Odczytuje sobie 8 bajtów z końca pliku i chciałbym przekopiowac je do zmiennej string ale nie mam pojęcia jak to zrobić. Tą funkcje przerobilem z przykładu ładowania odczytanych znaków do memo.

a moze jest jakiś inny prościejszy sposób?

0

Użyj TStringStream.

0

ehh qrcze dalej mi nie wychodzi :( Moze jakiś przykładowy kodzik. Potrzebuje to przedstawić jako postać hex np jakiś string:='A23F2E23';

0

juz sobie poradziłem w inny sposób :D

function LoadFromExe(FName: string): string;
var
  F : file of Byte;
begin
  Result := '';
  AssignFile(F, FName);
  FileMode := fmOpenRead;
  Reset(F);
  try
    Seek(F, FileSize(F) - 8*sizeof(byte));
    SetLength(Result, 8*SizeOf(byte));
    BlockRead(F, Result[1], Length(Result));
  finally
    CloseFile(F);
  end;
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1