硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2602|回复: 9
收起左侧

[RL-FlashFS] 文件内容删除问题

[复制链接]

11

主题

68

回帖

101

积分

初级会员

积分
101
发表于 2019-11-16 16:48:00 | 显示全部楼层 |阅读模式
Eric2013 您好!
     文件系统使用fprintf写CSV文件非常方便,那如果要删除里面的某一条数据,有什么好的操作方式?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
发表于 2019-11-16 22:08:38 | 显示全部楼层
这个没有好办法,修改这一条数据是可以的。
回复

使用道具 举报

11

主题

68

回帖

101

积分

初级会员

积分
101
 楼主| 发表于 2019-11-19 10:37:52 | 显示全部楼层
eric2013 发表于 2019-11-16 22:08
这个没有好办法,修改这一条数据是可以的。

如何修改,是不是使用fgets遍历要修改的那一行,然后再修改,还是有更好的方法,能够快速定位到哪一行
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
发表于 2019-11-19 17:42:05 | 显示全部楼层
ymh792260950 发表于 2019-11-19 10:37
如何修改,是不是使用fgets遍历要修改的那一行,然后再修改,还是有更好的方法,能够快速定位到哪一行

快速定位的话,可以考虑每条数据设置固定长度。
回复

使用道具 举报

11

主题

68

回帖

101

积分

初级会员

积分
101
 楼主| 发表于 2019-11-20 08:55:55 | 显示全部楼层
eric2013 发表于 2019-11-19 17:42
快速定位的话,可以考虑每条数据设置固定长度。

有网友是这么做删除的,先另外创建一个文件,然后读取原先文件内容,比对是否为要删除的那一行,如果不是的话,就写入到新创建的文件里面,如果为要删除的那一行,则不写到新建的文件,直至拷贝完成,然后移除原先文件,重命名新创建文件。不过这个文件内容少的话,挺好的方法,要是内容多的话,还是挺耗时间的。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
发表于 2019-11-20 09:19:01 | 显示全部楼层
ymh792260950 发表于 2019-11-20 08:55
有网友是这么做删除的,先另外创建一个文件,然后读取原先文件内容,比对是否为要删除的那一行,如果不是 ...

这个不适合,我之前那个项目一个csv文件,有50万条记录。
回复

使用道具 举报

11

主题

68

回帖

101

积分

初级会员

积分
101
 楼主| 发表于 2019-11-21 08:53:50 | 显示全部楼层
eric2013 发表于 2019-11-20 09:19
这个不适合,我之前那个项目一个csv文件,有50万条记录。

那有什么更好的方法,您之前是怎么做的;遍历查找也耗时,是不是得用到二分法查找,相对快一些
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
发表于 2019-11-21 09:03:53 | 显示全部楼层
ymh792260950 发表于 2019-11-21 08:53
那有什么更好的方法,您之前是怎么做的;遍历查找也耗时,是不是得用到二分法查找,相对快一些

固定每条消息的长度不是很方面,你那里不合适?
回复

使用道具 举报

11

主题

68

回帖

101

积分

初级会员

积分
101
 楼主| 发表于 2019-11-21 09:24:00 | 显示全部楼层
eric2013 发表于 2019-11-21 09:03
固定每条消息的长度不是很方面,你那里不合适?

如果由设备写入的内容,可以固定长度;我这边是先由电脑做好一个CSV文件内容,然后通过U盘导入到设备,设备可以查找,添加,删除,所以这个无法控制固定长度
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
发表于 2019-11-22 08:30:17 | 显示全部楼层
ymh792260950 发表于 2019-11-21 09:24
如果由设备写入的内容,可以固定长度;我这边是先由电脑做好一个CSV文件内容,然后通过U盘导入到设备,设 ...

这种的话,那就不合适了,不行的话,就分多个文件吧,这样每个文件就可以采用复制 - 修改 - 写入的方式。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 19:38 , Processed in 0.191278 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表