delphi在文件结尾写入和读出数据


本文整理自网络,侵删。

  

function WriteData(FileName:String):Boolean;
var
FileS :TFileStream;
Res :TResourceStream;
StrData :string[255];
IntData :Integer;
begin
try
    try
      //建立文件流,参数1为文件路径,参数2为打开方式
      FileS :=TFileStream.Create(FileName,fmOpenWrite or fmShareExclusive);
      //建立资源文件的方法为brcc32.exe File.rc
      //其中File.rc内为文本内容,例如:ResFile File File.exe
      //参数1为资源名称,参数2为资源类型,参数3为要添加到资源文件中的文件的名称
      //建立资源文件流,参数2为资源名称,参数3为资源类型
      Res :=TResourceStream.Create(Hinstance,'ResFile',PChar('File'));
      if Res<>nil then
        //复制资源流中的内容到文件流内,参数2为0时为复制所有内容
        FileS.CopyFrom(Res,0);
      //移动文件指针,参数1为移动距离,为负数时为向前移动,参数2为移动地点,如soFromEnd为从文件结尾
      FileS.Seek(0,soFromEnd);
      //写入字符数据,参数1为写入的内容,参数2为长度
      FileS.WriteBuffer(StrData,SizeOf(StrData));
      FileS.WriteBuffer(IntData,SizeOf(IntData));
      Result :=True;
    finally
      Res.Free;
      FileS.Free;
      Result :=False;
    end;
except
    MessageBox(Application.Handle,'写入文件失败!','提示',MB_ICONERROR+MB_OK);
end;
end;

function ReadData(FileName:String):Boolean;
var
FileS :TFileStream;
StrData :string[255];
IntData :Integer;
begin
try
    try
      //建立文件流,参数1为文件路径,参数2为打开方式
      FileS :=TFileStream.Create(FileName,fmOpenRead or fmShareExclusive);
      //写入字符数据,参数1为写入的内容,参数2为长度
      FileS.Seek(-SIZEOF(IntData),soFromEnd);
      FileS.ReadBuffer(IntData,SizeOf(IntData));
      FileS.Seek(-sizeof(StrData)-SIZEOF(IntData),soFromEnd);
      FileS.ReadBuffer(StrData,SizeOf(StrData));
      Result :=True;
    finally
      FileS.Free;
      Result :=False;
    end;
except
    MessageBox(Application.Handle,'读取文件失败!','提示',MB_ICONERROR+MB_OK);
end;
end;

相关阅读 >>

Delphi firedac 下的 sqlite [8] - 自定义函数

Delphi字符串旋转任意角度

Delphi 内存管理[4]

Delphi读ios的设备id

Delphi 将strings合并成一个逗号分隔的字符串,用于sql

Delphi tfont类型和json互相转换的函数

Delphi 结合正确的url

Delphi加载驱动的代码演示

Delphi 动态数组传递数据示例

Delphi 如何取得键盘每个键

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



打赏

取消

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

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

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

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

评论

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