, , :
function StringFromFile(const FileName: TFileName): RawByteString;
var F: THandle;
Size: integer;
begin
result := '';
if FileName='' then
exit;
F := FileOpen(FileName,fmOpenRead or fmShareDenyNone);
if PtrInt(F)>=0 then begin
{$ifdef LINUX}
Size := FileSeek(F,0,soFromEnd);
FileSeek(F,0,soFromBeginning);
{$else}
Size := GetFileSize(F,nil);
{$endif}
SetLength(result,Size);
if FileRead(F,pointer(Result)^,Size)<>Size then
result := '';
FileClose(F);
end;
end;
function FileFromString(const Content: RawByteString; const FileName: TFileName;
FlushOnDisk: boolean=false): boolean;
var F: THandle;
L: integer;
begin
result := false;
F := FileCreate(FileName);
if PtrInt(F)<0 then
exit;
if pointer(Content)<>nil then
L := FileWrite(F,pointer(Content)^,length(Content)) else
L := 0;
result := (L=length(Content));
{$ifdef MSWINDOWS}
if FlushOnDisk then
FlushFileBuffers(F);
{$endif}
FileClose(F);
end;
FileOpen/FIleSeek/FileRead/FileWrite.
fmShare*, .
RawByteString, , . Unicode, Ansi Text. , , Delphi 2009.
Delphi 2009 :
type
RawByteString = AnsiString;