找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 5663|回复: 1

[开源] 附加数据读取(源码Delphi)

[复制链接]

18

主题

41

回帖

0

精华

铜牌会员

积分
215
发表于 2011-1-11 12:47:55 | 显示全部楼层 |阅读模式
本帖最后由 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[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.

30

主题

693

回帖

0

精华

钻石会员

积分
2815
发表于 2015-4-20 10:57:26 | 显示全部楼层
沙发 真不错
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表