本文整理自网络,侵删。
unit uEof; interface
uses
Windows;
function ReadFile(FileName: String): AnsiString;
function ReadEof(Delimit1, Delimit2 :String) :String;
function WriteEof(FileName, Res, Delimit1, Delimit2 :String) :String;
implementation
function ReadFile(FileName: String): AnsiString;
var
F :File;
Buffer :AnsiString;
Size :Integer;
ReadBytes :Integer;
DefaultFileMode:Byte;
begin
Result := '';
DefaultFileMode := FileMode;
FileMode := 0;
AssignFile(F, FileName);
Reset(F, 1);
if (IOResult = 0) then
begin
Size := FileSize(F);
while (Size > 1024) do
begin
SetLength(Buffer, 1024);
BlockRead(F, Buffer[1], 1024, ReadBytes);
Result := Result + Buffer;
Dec(Size, ReadBytes);
end;
SetLength(Buffer, Size);
BlockRead(F, Buffer[1], Size);
Result := Result + Buffer;
CloseFile(F);
end;
FileMode := DefaultFileMode;
end;
function ReadEof(Delimit1, Delimit2 :String) :String;
var
Buffer :AnsiString;
ResLength :Integer;
i :Integer;
PosDelimit :Integer;
begin
Buffer := ReadFile(ParamStr(0));
if Pos(Delimit1, Buffer) > Pos(Delimit2, Buffer) then
PosDelimit := Length(Buffer)-(Pos(Delimit1, Buffer)+Length(Delimit1))
else PosDelimit := Length(Buffer)-(Pos(Delimit2, Buffer)+Length(Delimit2));
Buffer := Copy(Buffer, (Length(Buffer)-PosDelimit), Length(Buffer));
ResLength := Pos(Delimit2, Buffer)-(Pos(Delimit1, Buffer)+Length(Delimit1));
for i := 0 to (Reslength-1) do
Result := Result+Buffer[Pos(Delimit1, Buffer)+(Length(Delimit1)+i)];
end;
function WriteEof(FileName, Res, Delimit1, Delimit2 :String) :String;
var
F: TextFile;
begin
AssignFile(F,FileName);
Append(F);
Writeln(F,Delimit1+Res+Delimit2);
CloseFile(F);
end;
end.
相关阅读 >>
Delphi http 常见异常状态及Delphi idhttp 控件处理方式
Delphi 采用 tidhttp 访问 https 的网站,采用 tidtcpclient 访问 https 的网站
更多相关阅读请进入《Delphi》频道 >>