Delphiで小さな実行ファイルを作ろう

このエントリーをはてなブックマークに追加
22
APIで 直接ファイルを読書する方法判りました
それぞれ一挙に文字列に受け取ります。

function readFileStr(fname:string):string;
var hin:THandle;
var rsize:DWORD;
begin
result:='';
 hin:=CreateFile(PChar(fname),GENERIC_READ,0,nil,OPEN_EXISTING
 ,FILE_ATTRIBUTE_NORMAL,0);
if hin<>0 then try
  SetLength(Result, GetFileSize(hin, nil));
  ReadFile(hin,PChar(Result)^,Length(Result),rsize , nil);
 finally CloseHandle(hin);
 end
end;

function writeFileStr(fname,data:string):boolean;
var hout:THandle;
var wsize:DWORD;
begin
result:=false;
 hout:=CreateFile(PChar(fname),GENERIC_WRITE,0,nil,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);
if hout<>0 then try
  if WriteFile(hout,PChar(data)^,Length(data),wsize,nil) then
   result:=wsize=Length(data);
 finally CloseHandle(hout);
 end
end;

これで目標の20Kbyte付近のアプリが出来ました。
驚いた事に systemとwindowsだけの場合 Delphi6の方がサイズが小さくなりました