ymh792260950 发表于 2019-11-16 16:48:00

文件内容删除问题

Eric2013 您好!
   文件系统使用fprintf写CSV文件非常方便,那如果要删除里面的某一条数据,有什么好的操作方式?

eric2013 发表于 2019-11-16 22:08:38

这个没有好办法,修改这一条数据是可以的。

ymh792260950 发表于 2019-11-19 10:37:52

eric2013 发表于 2019-11-16 22:08
这个没有好办法,修改这一条数据是可以的。

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

eric2013 发表于 2019-11-19 17:42:05

ymh792260950 发表于 2019-11-19 10:37
如何修改,是不是使用fgets遍历要修改的那一行,然后再修改,还是有更好的方法,能够快速定位到哪一行

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

ymh792260950 发表于 2019-11-20 08:55:55

eric2013 发表于 2019-11-19 17:42
快速定位的话,可以考虑每条数据设置固定长度。

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

eric2013 发表于 2019-11-20 09:19:01

ymh792260950 发表于 2019-11-20 08:55
有网友是这么做删除的,先另外创建一个文件,然后读取原先文件内容,比对是否为要删除的那一行,如果不是 ...

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

ymh792260950 发表于 2019-11-21 08:53:50

eric2013 发表于 2019-11-20 09:19
这个不适合,我之前那个项目一个csv文件,有50万条记录。

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

eric2013 发表于 2019-11-21 09:03:53

ymh792260950 发表于 2019-11-21 08:53
那有什么更好的方法,您之前是怎么做的;遍历查找也耗时,是不是得用到二分法查找,相对快一些

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

ymh792260950 发表于 2019-11-21 09:24:00

eric2013 发表于 2019-11-21 09:03
固定每条消息的长度不是很方面,你那里不合适?

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

eric2013 发表于 2019-11-22 08:30:17

ymh792260950 发表于 2019-11-21 09:24
如果由设备写入的内容,可以固定长度;我这边是先由电脑做好一个CSV文件内容,然后通过U盘导入到设备,设 ...

这种的话,那就不合适了,不行的话,就分多个文件吧,这样每个文件就可以采用复制 - 修改 - 写入的方式。
页: [1]
查看完整版本: 文件内容删除问题