function LoadFile(AFile: PChar;AMemo:TMemo): Boolean;
var
hFile: HWND;
bw: DWORD;
FileSize: Integer;
Buffer: Pointer;
i: Integer;
P: PByte;
F: Byte;
s: string;
begin
Result := True;
hFile := CreateFile(AFile, GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, 0);
if hFile = INVALID_HANDLE_VALUE then
begin
Result := False;
Exit;
end;
FileSize := GetFileSize(hFile, 0);
GetMem(Buffer, FileSize);
ZeroMemory(Buffer, FileSize); { Clean Buffer }
Result := ReadFile(hFile, Buffer^, FileSize, bw, 0);
s := '';
P := PByte(Buffer);
for i := 0 to FileSize do
begin
F := P^;
if F <> 0 then
s := s + Char(F)
else
s := s + '.';
Inc(P);
end;
AMemo.Text := s;
CloseHandle(hFile);
FreeMem(Buffer, FileSize);
end;
procedure TForm3.Button1Click(Sender: TObject);
begin
LoadFile('Test.exe',Memo1);
end;