Thema: Delphi ReadFile

Einzelnen Beitrag anzeigen

Astat

Registriert seit: 2. Dez 2009
Ort: München
320 Beiträge
 
Lazarus
 
#2

Re: ReadFile

  Alt 28. Feb 2010, 17:32
Hallo n3r0f0x.

Delphi-Quellcode:

function ReadFile(const FileName: String): AnsiString;
var
  ms: TMemoryStream;
begin
  ms := TMemoryStream.Create;
  ms.LoadFromFile(FileName);
  setLength(Result, ms.size);
  move(ms.memory^, Result[1], ms.Size);
  ms.Free;
end;
PS. MZP ist ein PE-File, wenn Du den String anzeigen willst, geht dies nur bis #0
Hier ist Result wie ein Buffer zu verwenden, also länge durchiterieren und in Hex etc. konvertieren.

// EDIT Auf Anregung hier ohne Memory Stream
Delphi-Quellcode:

{$R+} {$Q+} {$I+}
function FileToStringEx(const AFileName: AnsiString): AnsiString;
var
  hFile: DWORD;
  cbLen, cbRead: DWORD;
begin
  hFile := CreateFile(PAnsiChar(AFileName), GENERIC_READ, 0, nil, OPEN_EXISTING,
    FILE_ATTRIBUTE_NORMAL, 0);
  cbLen := GetFileSize(hFile, nil);
  if hFile <> INVALID_HANDLE_VALUE then begin
    SetLength(Result, cbLen);
    if not ReadFile(hFile, Result[1], cbLen, cbRead, nil) then
      raise Exception.Create('ERROR ReadFile');
    CloseHandle(hFile);
  end;
end;
{$R-} {$Q-} {$I-}
lg. Astat
Lanthan Astat
06810110811210410503210511511603209711003210010110 9032084097103
03211611111604403209711003210010110903210010510103 2108101116122
11610103209010110510810103206711110010103210511003 2068101108112
10410503210310111509910411410510109810111003211910 5114100046
  Mit Zitat antworten Zitat