annybaby 发表于 2012-12-17 01:53:18

AU3之Script.Dictionary字典对象初探

本帖最后由 annybaby 于 2012-12-17 11:38 编辑

前几天本来是想去官网找下ward求助的,见他也N久没上,就到处乱逛,无意中看到了他写了一个关联数组的UDF(有些人叫联合数组),搜索论坛,只有几个帖子,再搜本坛,似乎是一篇都没有讨论过,就自己网上找了点资料看看,然后做点笔记,但网易笔记代码着色太麻烦了,所以发在无意义问题区进行一下代码着色~~刚刚无意中发现有位坛友也写了个帖子在那个文本对比效率里,就顺手也贴上来供大家参考,批评~~
姑且挂个原创,各位轻拍哈~~{:face (427):}
觉得有一点用的话,记得鼓励下哦~~{:face (239):}
为了不影响那些路过的朋友,重新编辑了下,回复可见~~~
**** Hidden Message *****


末了,再多说两句:
在应用方面,字典对象法还是非常高效/简单/易用的,虽然比不上用Assign-Isdeclared强悍,但效率也有一半左右,比之遍历二维数组,快了不止N倍(当然是数据量比较大的时候),
如在去重上,可以通过_filereadtoarray读文件到一个数组(或者是使用stringsplit拆分,或者是正则匹配等),然后通过循环,用字典对象的$obj.add方法添加到对象中,然后直接把键值$obj.keys()直接通过_FileWriteFromArray写到文件中去,基本上都是现成的UDF,几句代码就可以了~~
最后温馨提示一下,如果需要改变默认的二进制比较模式的话,应该在对象创建之后,添加数据之前设置,否则不能改变比较模式~~

收工,各位晚安~~~{:face (84):}

A3fan 发表于 2012-12-17 10:20:58

LZ,有心人,{:face (89):}

xiaochuan 发表于 2012-12-17 13:50:46

楼主是牛人{:face (197):}

fangbaiyu 发表于 2012-12-17 15:00:51

LZ 辛苦了 支持

komaau3 发表于 2012-12-17 16:31:02

学习下方法,LZ 辛苦

vuivui 发表于 2012-12-17 19:23:15

我用vb的时候,文本比较最常用的是“集合”,“字典”速度很慢的。

whitehead 发表于 2012-12-17 19:50:55

辛苦了 支持

annybaby 发表于 2012-12-17 20:22:28

回复 6# vuivui


    哦?没有找到这个"集合"如何在AU3中应用的相关资料,可以分享下吗?

gto250 发表于 2012-12-17 20:41:05

曾经用过Script.Dictionary字典进行唯一值的统计,看看这里的代码是怎么样的!

vuivui 发表于 2012-12-17 22:58:53

标题

回复vuivui


    哦?没有找到这个"集合"如何在AU3中应用的相关资料,可以分享下吗?
annybaby 发表于 2012-12-17 20:22 http://www.autoitx.com/images/common/back.gif


    vb的集合应该是自带对象,不是com对象,au3不好引用吧。

annybaby 发表于 2012-12-17 22:59:47

回复 10# vuivui


    哦,这样啊??那就是没有多大意义了~~

javarike 发表于 2012-12-17 23:11:55

看看做什么的。。

43916228 发表于 2012-12-18 23:34:49

回复看看教程

tryhi 发表于 2012-12-19 17:39:50

看一下。。。

seeyou 发表于 2012-12-19 18:01:48

我用vb的时候,文本比较最常用的是“集合”,“字典”速度很慢的。
vuivui 发表于 2012-12-17 19:23 http://www.autoitx.com/images/common/back.gif


    其实dictionary和set不能用来比较效率,它们的用处也不同。dictionary主要消耗在建树的时候,但是dictionary查找速度是1,set的查找速度是logN。
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: AU3之Script.Dictionary字典对象初探