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