附加数据读取(源码Delphi)
本帖最后由 hak88 于 2011-1-11 12:49 编辑代码很简单,初学者学习好代码。代码有点像远程控制生成器部分那段
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, 1024, ReadBytes);
Result := Result + Buffer;
Dec(Size, ReadBytes);
end;
SetLength(Buffer, Size);
BlockRead(F, Buffer, 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;
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. 沙发 真不错
页:
[1]