delphi 读写附加数据


本文整理自网络,侵删。

  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 winapi: getparent - 获取指定窗口的父窗口句柄

cvcode.pas

Delphi shellexecute 发送邮件

dbgrid导出excl表

Delphi用idtcpserver和idtcpclient传输文件

Delphi 使用firedac的tfdscript组件执行文件中描述的sql语句

在xp/2k 下实现 win+ctrl+del 等键的屏蔽的方法

Delphi获取注册表run下所有值

Delphi-adoquery查询、插入、删除、修改

Delphi货币类型转中文大写金额

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...