打印
[STM32F1]

能不能实现跳过一定数量数据开始读取1.TXT文件的数据呢?

[复制链接]
712|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ousj|  楼主 | 2023-2-10 19:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
能不能实现跳过一定数量数据开始读取1.TXT文件的数据呢?

使用特权

评论回复
沙发
ousj|  楼主 | 2023-2-10 19:38 | 只看该作者
FatFs文件系统已经移植好了,可以读取sd卡里面的TXT文件了。现在我SD卡里面有一个1.TXT文件,文件里面有足够的数据,已经可以从开头开始读取指定长度的数据了。

使用特权

评论回复
板凳
jlyuan| | 2023-2-10 19:40 | 只看该作者
你有什么打算呢?或者你想知道什么?

使用特权

评论回复
地板
ousj|  楼主 | 2023-2-10 19:41 | 只看该作者
比如说从1.TXT文件的第50个字节开始读取数据

使用特权

评论回复
5
supernan| | 2023-2-10 19:52 | 只看该作者
好像有个f_lseek的函数可以用的。

使用特权

评论回复
6
heweibig| | 2023-2-10 19:55 | 只看该作者
没有用过这个系统

使用特权

评论回复
7
jlyuan| | 2023-2-12 10:33 | 只看该作者
还没有做过这么难的

使用特权

评论回复
8
zwll| | 2023-2-12 10:36 | 只看该作者
可以的 但是比较麻烦啊

使用特权

评论回复
9
juventus9554| | 2023-2-12 10:37 | 只看该作者
自己写一个函数就可以实现

使用特权

评论回复
10
dingy| | 2023-2-12 10:39 | 只看该作者
这样做是不是有点难度啊

使用特权

评论回复
11
dingy| | 2023-2-12 10:41 | 只看该作者
是不是可以都读出来 然后在选择数据呢

使用特权

评论回复
12
公羊子丹| | 2025-4-6 07:36 | 只看该作者
这个可以的,我之前用 FatFS 做过,可以用 f_lseek() 把文件指针移动到你想要的位置再开始读。

使用特权

评论回复
13
周半梅| | 2025-4-6 07:37 | 只看该作者
建议你先用 f_open() 打开文件,再 f_lseek(fp, 偏移量),最后用 f_read() 就能实现跳过开头内容了。

使用特权

评论回复
14
帛灿灿| | 2025-4-6 07:39 | 只看该作者
如果你是按字节跳过,比如跳过前100个字节,那就直接 f_lseek(&fil, 100),特别方便!

使用特权

评论回复
15
童雨竹| | 2025-4-6 07:40 | 只看该作者
要注意 f_lseek 跳的是字节,不是行,所以你要是想按行跳,得自己计算一行多少字节再乘。

使用特权

评论回复
16
万图| | 2025-4-6 07:41 | 只看该作者
我以前遇到的问题是:跳太远超过文件长度会失败,记得判断一下 f_size(fp) 大小再决定偏移量。

使用特权

评论回复
17
Wordsworth| | 2025-4-6 07:43 | 只看该作者
FatFS 默认是可以随机访问文件的,不像串口那种顺序读取,所以你要怎么跳都行,只要地址别越界。

使用特权

评论回复
18
Bblythe| | 2025-4-6 07:44 | 只看该作者
如果你要跳的是某一行内容,不太好直接用 f_lseek,得读一行跳一行,建议写个循环自己跳。

使用特权

评论回复
19
Pulitzer| | 2025-4-6 07:45 | 只看该作者
我当时还遇到个坑,如果你文件系统用的是小簇大小,跳过的数据正好跨簇,也会慢一点,注意性能。

使用特权

评论回复
20
Uriah| | 2025-4-6 07:47 | 只看该作者
可以先用 f_tell() 看一下当前文件指针的位置调试一下,便于你确认跳转是否成功。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

712

主题

7557

帖子

1

粉丝