找回密码
 加入
搜索
楼主: ac5474012

[AU3基础] [求助]如何检测出一个ini中有那些相同的关键字?

 火.. [复制链接]
发表于 2011-3-29 11:22:17 | 显示全部楼层
回复  afan



你说的是
1.“相同的关键字”是指同一个字段的。
2.需要返回什么结果?我的意思是返回 ...
ac5474012 发表于 2011-3-29 11:04


晕,你这ini范本哪有相同的关键字?
而且你要的结果貌似也与主题没啥关系。“只保留距离当前时间最近的关键字”完全可以先找出最近的关键字(已有解决贴),再删除所有字段关键字重写。
发表于 2011-3-29 12:33:14 | 显示全部楼层
回复 4# kevinch
看你的帖子多次提到字典,能否给出一个字典的范例,只能说明意思即可,这方面我不是很懂
 楼主| 发表于 2011-3-29 12:57:54 | 显示全部楼层
回复 16# afan

晕,你这ini范本哪有相同的关键字?
而且你要的结果貌似也与主题没啥关系。“只保留距离当前时间最近的 ...
afan 发表于 2011-3-29 11:22


...什么情况啊,我那范例只是规格你填两个一样的不就一样了~~~ 我这有2000多行了要不我直接肉眼解决~ 另外,我问的只是要找出一样的关键字,我要的结果是和主题没有关系,但是你既然问到了我就说全了,如果能找到解决找到一样关键字的方法我自己在解决最近的时间这样~
发表于 2011-3-29 13:41:07 | 显示全部楼层
本帖最后由 kevinch 于 2011-3-29 13:45 编辑
回复  kevinch
看你的帖子多次提到字典,能否给出一个字典的范例,只能说明意思即可,这方面我不是很懂
love5173 发表于 2011-3-29 12:33
#include <array.au3>

$o_Dic=objcreate("scripting.dictionary") ;创建字典项目(必须文件:注册过的scrrun.dll,引号中是类名)
if isobj($o_Dic) then 
        msgbox(0,"","创建字典成功")
Else
        msgbox(0,"","创建字典失败,请检查必要条件是否存在")
        exit 0
endif
msgbox(0,"","下面向字典中添加三个项目")        ;注意字典的key是不重复的(唯一值,用来去重复极有效率),item项无此限制,对已存在的key不可以再次添加(否则报错),只能修改item项或删除当前已存在的key后再添加
$o_Dic.add("111","456") ;添加项目,语法:object.add(key,item) 或 object(key)=item    注:key应为文本,数值容易产生歧义,即不知是对应的下标还是key值
$o_Dic.add("222",789)        ;item项类型比较广泛,可以是常规类型,甚至数组或字典,且无太多限制(长度等)
$o_Dic.add("333","测试")        ;一般认为字典的容量仅与未使用的可用内存容量有关
_ArrayDisplay($o_Dic.keys,$o_Dic.items)        ;引用全部key和item的方法 语法:object.keys object.items 注:keys和items为集合性质,可以按照集合的方式枚举或者赋值给数组后循环操作
msgbox(0,"","单独引用的方法"&@crlf&"object(key)或者object.item(key)"&@crlf&"本例:key""333""对应的item内容是:"&$o_Dic("333"))
msgbox(0,"","接下来枚举各key及对应item内容")
for $s_Key in $o_Dic.keys
        msgbox(0,"显示key"""&$s_Key&"""对应的item内容",$o_Dic($s_Key)) ;项目引用方法 object(key) 或 object.item(key)
next
MsgBox(0,"当前字典共有项目数为",$o_Dic.count)  ;字典已有项目计数 引用方法:object.count
MsgBox(0,"","接下来移除""111""这个字典项")
$o_Dic.remove("111")        ;移除项目 语法:object.remove(key)
_ArrayDisplay($o_Dic.keys)
MsgBox(0,"当前字典共有项目数为",$o_Dic.count)
MsgBox(0,"","接下来移除字典中全部项目")
$o_Dic.removeall        ;移除全部 语法:object.removeall
MsgBox(0,"当前字典共有项目数为",$o_Dic.count)
写个字典用法简单讲解的例子,供大家理解,字典我是从vba里引用过来的,所以有些方法也与在vba里不太一样

字典有两个方面最有效率:
1. key项不重复,用来去除重复,直接用第二种赋值方式object(key)=item,item直接设置为"",则得到的keys就是不重复的全部项目;
2. 定位,字典不需要循环,直接用key值引用对应的item项(直接object(key)即是对应的item内容),这样的效率相信大家应该可以理解得到,不需要我多说了。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-19 05:38 , Processed in 0.067485 second(s), 14 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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