您的位置:首页 > 其它

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

2017-07-04 08:27 477 查看
追加数据的方法,最主要的是使用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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: