找回密码
 加入
搜索
查看: 4107|回复: 16

一个关于写入速度的探讨

 火.. [复制链接]
发表于 2009-11-17 16:59:43 | 显示全部楼层 |阅读模式
我在做一个文件校验码的小程序,就是想把所以文件的校验码(md5)存储下来,以便以后对比使用,

我采用了几种方法,发现直接读写文件最快,希望大家给个确定的答案?

我的了以下3个方法
1.直接将md5码村在一个txt内
2.将md5码存在access的数据库文件内
3.将md5码存在SQLite数据库内

测试发现存在txt内最快,但是后期做对比时比较麻烦
测试发现access 数据库读写有问题,存在写入200条记录左右时出现链接丢失,读写文件错误。
相对比较完美的是 sqlite 但是写入速度还是有问题,不如直接写txt快


不知道各位有没有什么好的办法。
 楼主| 发表于 2009-11-17 17:00:15 | 显示全部楼层
各位大侠有什么好的办法可以提供一下吗!?
谢谢了!
发表于 2009-11-17 17:57:49 | 显示全部楼层
可以用ini文件存放啊!这样操作的速度应该和txt差不多。
而且ini文件后期检查和对比都方便。

个人建议,仅供参考。
发表于 2009-11-18 06:10:36 | 显示全部楼层
正如楼上所说,如果不是上千条数据,如果不是需要多次较复杂的循环判断,INI是一个不错的选择。
 楼主| 发表于 2009-11-18 08:27:46 | 显示全部楼层
恩,我试过,因为数据量很大,大约3万条左右
我还是考虑使用数据库,因为后期校验试还有一些内容更新操作。
我正在测试使用xml 来存储,不知道效果如何。。。
发表于 2009-11-18 09:11:58 | 显示全部楼层
本帖最后由 flew0214 于 2009-11-18 09:14 编辑

大约3万的话,我觉得你是否可以选择分放在不同的txt文件里面呢?比如按照后缀,或者头个字母呢?这样或许可以加快搜索比对的速度。
还有你里面的格式是怎样的?文件名 + MD5?这样。
完成之后能不能公开给大家学习学习呢?这样就能互补了。
 楼主| 发表于 2009-11-18 16:27:54 | 显示全部楼层
我马上做完,会在论坛上发布的。
还请大家帮着优化代码。
发表于 2009-11-18 21:41:49 | 显示全部楼层
毫无疑问 数据库是最快的
发表于 2009-11-18 21:51:05 | 显示全部楼层
毫无疑问 数据库是最快的
大绯狼 发表于 2009-11-18 21:41


前辈指的数据库是“SQL”吗?
 楼主| 发表于 2009-11-19 10:21:25 | 显示全部楼层
楼上的问题很诡异啊……
发表于 2009-11-19 10:31:57 | 显示全部楼层
本帖最后由 flew0214 于 2009-11-19 10:33 编辑

对了你写完没有,我正好想弄个搜索某文件夹下dll然后记下md5。再搜索exe然后备分的东西来。正好来偷偷你的成品,哈。
因为昨天我电脑中毒,把我所有的exe文件都感染了。为啥每次都来这招。真麻烦,我几个G的工具都要白费了。郁闷
发表于 2009-11-19 16:15:48 | 显示全部楼层
用ini还是很方便的,用以下的格式
文件名=md5值
如果条目过多可以分成多个ini
 楼主| 发表于 2009-11-20 09:16:48 | 显示全部楼层
我用sqlite 了,这几天比较忙没弄完,但是有个问题,
论坛里提供的md5的udf 在 win 2000上用不了,很郁闷。
发表于 2009-11-20 11:00:59 | 显示全部楼层
那你是准备如何做比对呢?自己编写吗?
我看到现在比对的软件里Beyond Compare 3比较厉害。
如果可以的话,我觉得保存在txt里,然后用acc去连接然后用查询比较直观。而且准确。
 楼主| 发表于 2009-11-20 16:35:40 | 显示全部楼层
其实原理很简单,就是对比文件的md5码
当然,得有一份标准。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-22 17:39 , Processed in 0.096587 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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