利用FATFS读取CSV指定数据

**

利用FATFS读取.csv指定行数据

**

第一次写博客,没有什么经验,如有问题,可随时接受指正,最近项目上遇到一个读取CSV文件指定位置的问题,网上找了资源也没有发现合适的方案。所以分享下自己的经验。

文件打开 f_open

函数原型:FRESULT f_open(FILE fp,const TCHAR path,BYTE mode);
说明:该函数位于ff.c文件中。fp表示需要写入的文件,path可以理解为文件名称,mode为模式标志

文件定位 f_lseek

指定位置,该函数为关键,打开文件之后,我们想定位到最后一行数据,里面还得用到一个获取文件大小的函数f_size,所以定位到最后一行的起始位置,可以利用文件大小减去一行的数据量大小。f_lseek(&fil,f_size(&fil)-sizeof§+1),其中p是我的一个结构体,用来写到.csv文件一整行的数据。

获取指定位置数据 f_gets

经过上面两步,位置已经定位了,但是此时不要使用f_read()来读数据,使用f_gets()来获取指定的字节数(字节数看自己想要多少);

部分代码:

`f_open(&fil,"a.csv",FA_READ);`
f_lseek(&fil,f_size(&fil)-sizeof (p)+1);
f_gets(sd,30&fil);//读取30字节数据放到sd数组里

你可能感兴趣的:(嵌入式)