STM32读写TXT时追加数据的方法

追加数据的方法,最主要的是使用f_lseek函数,但使用此函数时,我还是碰到不少的问题,现将自己在调试中碰到的事项分享给大家:

1.为了追加数据,必须获取原文件的长度,可用f_size函数,如下代码:

  res = f_open(&fsrc, (const TCHAR *)DataFile, FA_OPEN_EXISTING | FA_READ);
  FileSize = f_size(&fsrc);  

2.为了写数据,必须以写的方式再打开一次文件

 res=f_open(&fsrc,"0.txt", FA_CREATE_ALWAYS | FA_WRITE);

3.偏移指针,需要注意的是,空的TXT,用f_size也会产生长度值,如果把这个偏移量也加入的话,TXT开头就会出现乱码,为此需要判断是否是空件

 if(FileSize>50)res=f_lseek(&fsrc,FileSize); 

经过以上处理后,就可以直接使用f_write写函数了,在关闭文件前,可以重复使用写函数,而不必考虑指针偏移,如以下代码

 res = f_write(&fsrc, TFData,26,&bw);

res = f_write(&fsrc, TFData,26,&bw);

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值