nxbigdaddy 发表于 2009-11-17 16:59:43

一个关于写入速度的探讨

我在做一个文件校验码的小程序,就是想把所以文件的校验码(md5)存储下来,以便以后对比使用,

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

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

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


不知道各位有没有什么好的办法。

nxbigdaddy 发表于 2009-11-17 17:00:15

各位大侠有什么好的办法可以提供一下吗!?
谢谢了!

水木子 发表于 2009-11-17 17:57:49

可以用ini文件存放啊!这样操作的速度应该和txt差不多。
而且ini文件后期检查和对比都方便。

个人建议,仅供参考。

kodin 发表于 2009-11-18 06:10:36

正如楼上所说,如果不是上千条数据,如果不是需要多次较复杂的循环判断,INI是一个不错的选择。

nxbigdaddy 发表于 2009-11-18 08:27:46

恩,我试过,因为数据量很大,大约3万条左右
我还是考虑使用数据库,因为后期校验试还有一些内容更新操作。
我正在测试使用xml 来存储,不知道效果如何。。。

flew0214 发表于 2009-11-18 09:11:58

本帖最后由 flew0214 于 2009-11-18 09:14 编辑

大约3万的话,我觉得你是否可以选择分放在不同的txt文件里面呢?比如按照后缀,或者头个字母呢?这样或许可以加快搜索比对的速度。
还有你里面的格式是怎样的?文件名 + MD5?这样。
完成之后能不能公开给大家学习学习呢?这样就能互补了。

nxbigdaddy 发表于 2009-11-18 16:27:54

我马上做完,会在论坛上发布的。
还请大家帮着优化代码。

大绯狼 发表于 2009-11-18 21:41:49

毫无疑问 数据库是最快的

水木子 发表于 2009-11-18 21:51:05

毫无疑问 数据库是最快的
大绯狼 发表于 2009-11-18 21:41 http://www.autoitx.com/images/common/back.gif

前辈指的数据库是“SQL”吗?

nxbigdaddy 发表于 2009-11-19 10:21:25

楼上的问题很诡异啊……

flew0214 发表于 2009-11-19 10:31:57

本帖最后由 flew0214 于 2009-11-19 10:33 编辑

对了你写完没有,我正好想弄个搜索某文件夹下dll然后记下md5。再搜索exe然后备分的东西来。正好来偷偷你的成品,哈。
因为昨天我电脑中毒,把我所有的exe文件都感染了。为啥每次都来这招。真麻烦,我几个G的工具都要白费了。郁闷

wisly 发表于 2009-11-19 16:15:48

用ini还是很方便的,用以下的格式
文件名=md5值
如果条目过多可以分成多个ini

nxbigdaddy 发表于 2009-11-20 09:16:48

我用sqlite 了,这几天比较忙没弄完,但是有个问题,
论坛里提供的md5的udf 在 win 2000上用不了,很郁闷。

flew0214 发表于 2009-11-20 11:00:59

那你是准备如何做比对呢?自己编写吗?
我看到现在比对的软件里Beyond Compare 3比较厉害。
如果可以的话,我觉得保存在txt里,然后用acc去连接然后用查询比较直观。而且准确。

nxbigdaddy 发表于 2009-11-20 16:35:40

其实原理很简单,就是对比文件的md5码
当然,得有一份标准。
页: [1] 2
查看完整版本: 一个关于写入速度的探讨