找回密码
 加入
搜索
查看: 13515|回复: 34

[原创] Dictionary 对象使用详解

[复制链接]
发表于 2013-2-22 14:23:54 | 显示全部楼层 |阅读模式
本帖最后由 chishingchan 于 2013-2-22 17:26 编辑

本人N年前已开始接触 VBScript 脚本编程,关于 VBScript 的资料官方及网络可谓十分的丰富,所以学习起来很容易上手!前几年认识了 AutoIt 后,觉得后者比前者更有界面上的优势,后来就开始慢慢的学习 AutoIt 编程。AutoIt 应该可以将 VBScript 的可用对象之类的东东转移到 AutoIt 上使用,例如:Dictionary 对象。觉得 Dictionary 对象比数组处理的方便容易。以下内容是根据微软官方提供的资料整理出来的,比较易懂!本人检阅了一下,如有错漏在所难免,请指正。

Dictionary 对象
描述
        保存数据键和项目对的对象。
语法
        Scripting.Dictionary
说明
        Dictionary 对象与 PERL 关联数组是等价的。项目(可以是任何形式的数据)被保存在数组中。每项都与唯一的键相关联。键值用于检索单个项目,通常是整数或字符串,但不能为数组。
        创建 Dictionary 对象:
Dim $Object
$Object = ObjCreate("Scripting.Dictionary");创建 Dictionary 对象
CompareMode 属性
描述
        设置并返回在 Dictionary 对象中比较字符串关键字的比较模式。
语法
        $Object.CompareMode[ = compare]
        CompareMode 属性有以下部分:

        部分         描述
        $Object        必选。Dictionary 对象的名称。
        compare        可选。如果提供此参数,compare 参数为数值,表示由函数如 StrComp 使用的比较模式。
        设置
        compare 参数设置如下:
        常量                        值        描述
        $BinaryCompare        0        执行二进制比较.
        $TextCompare        1        执行文本比较.
说明
        大于 2 的值可用来进行使用区别 Ids 的比较 (LCID)如果试图更改已经包含数据的 Dictionary 对象的比较模式,则会出现错误。
        CompareMode 属性使用与 StrComp 函数中 compare 参数相同的值。
Const $BinaryCompare = 0
Const $TextCompare = 1
Dim $Object
$Object = ObjCreate("Scripting.Dictionary");创建 Dictionary 对象
$Object.CompareMode = $TextCompare;比较模式
$Object.Add("a", "第一行");添加键(Key)和项目(Item)
$Object.Add("b", "第二行")
$Object.Add("B", "第三行");因文本比较模式,且存在b键,此行添加失败
.
.
.
Count 属性
描述
        返回一个集合或 Dictionary 对象包含的项目数。只读。
语法
        $Object.Count
        $Object 可以是“应用于”列表中列出的任何集合或对象的名称。
说明
        以下代码举例说明如何使用 Count 属性:
Dim $Object,$Count
$Object = ObjCreate("Scripting.Dictionary");创建 Dictionary 对象
$Object.Add("a", "第一行");添加键(Key)和项目(Item)
$Object.Add("b", "第二行")
$Count = $Object.Count -1
MsgBox(0,"$Object.Count",$Count)
Item 属性
描述
        设置或返回 Dictionary 对象中指定的 key 对应的 item,或返回集合中基于指定的 key 的 item。可读写。
语法
        $Object.Item(key) [= newitem]
        Item 属性的语法有以下部分:
        部分        描述
        $Object        必选。应为集合或 Dictionary 对象的名称
        key                必选。与检索或添加的 item 相关联的 key。
        newitem        可选。仅用于 Dictionary 对象,不能应用于集合。如果提供此参数,则 newitem 是与指定的 key 相关联的项目的新值。
说明
        如果更改 item 时未找到 key,则使用指定的 newitem 创建一个新的 key。如果试图返回一个已有项目时未找到 key,则创建一个新的 key 并且它对应的项目为空值。
Dim $Object,$Key
$Object = ObjCreate("Scripting.Dictionary");创建 Dictionary 对象
$Object.Add("a", "第一行");添加键(Key)和项目(Item)
$Object.Add("b", "第二行")
$Key = $Object.Item("b");得到项目值
MsgBox(0,"$Object.Item",$Key)
Key 属性
描述
        在 Dictionary 对象中设置 key。
语法
        $Object.Key(key) = newkey
        Key 属性结构如下:
        参数        描述
        $Object        必选。通常是 Dictionary 对象的名称。
        key                必选。要改变的 Key 值。
        newkey        必选。代替指定 key 值的新值。
说明
        如果在更改 key 值时未找到 key,则出现运行时错误。
        下面例子举例说明如何使用 Key 属性:
Dim $Object,$Item
$Object = ObjCreate("Scripting.Dictionary");创建 Dictionary 对象
$Object.Add("a", "第一行");添加键(Key)和项目(Item)
$Object.Add("b", "第二行")
$Object.Key("b") = "c";将"b"的键设置为"c"
$Item = $Object.Item("c");返回相关项目
MsgBox(0,"$Object.Item",$Item)
Add 方法
描述
        向 Dictionary 对象添加键和项目对。
语法
        $object.Add(key,item)
        Add 方法的语法有以下部分:
        部分        描述
        $object        必选。应为 Dictionary 对象的名称。
        key                必选。与添加的 item 相关的 key。
        item        必选。与添加的 key 相关的 item。
说明
        如果 key 已经存在,则会出现错误。
        下面例子举例说明如何使用 Add 方法:
Dim $Object
$Object = ObjCreate("Scripting.Dictionary");创建 Dictionary 对象
$Object.Add("a", "第一行");添加键(Key)和项目(Item)
$Object.Add("b", "第二行")
.
.
.
Exists 方法
描述
        如果在 Dictionary 对象中存在指定键,返回 True;如果不存在,返回 False。
语法
        $object.Exists(key)
        Exists 方法的语法有以下部分:
        参数        描述
        $object        必选。应为 Dictionary 对象的名称。
        key                必选。Key 为在 Dictionary 对象中要查找的值。
说明
        下面例子举例说明如何使用 Exists 方法:
Dim $Object,$Msg
$Object = ObjCreate("Scripting.Dictionary");创建 Dictionary 对象
$Object.Add("a", "第一行");添加键(Key)和项目(Item)
$Object.Add("b", "第二行")
If $Object.Exists("c") Then
        $Msg = "指定的键存在。"
Else
        $Msg = "指定的键不存在。"
EndIf
MsgBox(0,"$Object.Exists",$Msg)
Items 方法
描述
        返回一个数组,其中包含有 Dictionary 对象中的所有项目。
语法
        $object.Items
        $object 应为 Dictionary 对象的名称。
说明
        以下代码举例说明如何使用 Items 方法:
Dim $Object,$Item,$Msg
$Object = ObjCreate("Scripting.Dictionary");创建 Dictionary 对象
$Object.Add("a", "第一行");添加键(Key)和项目(Item)
$Object.Add("b", "第二行")
$Object.Add("c", "第三行")
$Item = $Object.Items;获取项目
For $i = 0 To $Object.Count -1;循环使用数组
        $Msg &= $Item[$i] & @CRLF;创建返回字符串
Next
MsgBox(0,"$Object.Item",$Msg)
Keys 方法
描述
        返回一数组,其中包含有 Dictionary 对象的所有现存键。
语法
        $object.Keys
        $object 应为 Dictionary 对象的名称。
说明
        下列代码举例说明如何使用 Keys 方法:
Dim $Object,$Keys,$Msg
$Object = ObjCreate("Scripting.Dictionary");创建 Dictionary 对象
$Object.Add("a", "第一行");添加键(Key)和项目(Item)
$Object.Add("b", "第二行")
$Object.Add("c", "第三行")
$Keys = $Object.Keys;获取键
For $i = 0 To $Object.Count -1;循环使用数组
        $Msg &= $Keys[$i] & @CRLF;创建返回字符串
Next
MsgBox(0,"$Object.Keys",$Msg)
Remove 方法
描述
        从 Dictionary 对象中删除键和项目对。
语法
        $object.Remove(key)
        Remove 方法的语法有以下部分:
        部分        描述
        object        必选。应为 Dictionary 对象的名称。
        key                必选。与要从 Dictionary 对象中删除的键和项目对相关联的 Key。
说明
        如果指定的键和项目对不存在,则会出现错误。
        下列代码示范如何使用 Remove 方法:
Dim $Object
$Object = ObjCreate("Scripting.Dictionary");创建 Dictionary 对象
$Object.Add("a", "第一行");添加键(Key)和项目(Item)
$Object.Add("b", "第二行")
$Object.Add("c", "第三行")
$Object.Remove("b");删除第二个键(Key)和项目(Item)
.
.
.
RemoveAll 方法
描述
        RemoveAll 方法删除 Dictionary 对象中的所有键和项目对。
语法
        $object.RemoveAll
        $object 应为 Dictionary 对象的名称。
说明
        下列代码举例说明如何使用 RemoveAll 方法:
Dim $Object
$Object = ObjCreate("Scripting.Dictionary");创建 Dictionary 对象
$Object.Add("a", "第一行");添加键(Key)和项目(Item)
$Object.Add("b", "第二行")
$Object.Add("c", "第三行")
$Object.RemoveAll;清除 Dictionary
.
.
.
 楼主| 发表于 2013-2-22 14:29:23 | 显示全部楼层
本帖最后由 chishingchan 于 2013-2-22 14:34 编辑

要学习 VBScript 或转化 VBScript 脚本到 AutoIt 里使用,查找更多的例子应用,请下载 VbsEdit 5.4.8.0 参考:(附 Patch.vbs 破解脚本)
游客,如果您要查看本帖隐藏内容请回复
发表于 2013-2-23 00:42:09 | 显示全部楼层
回复 2# chishingchan

教程,是授人以渔
发表于 2013-2-23 07:51:34 | 显示全部楼层
学习了~~~~~~~
 楼主| 发表于 2013-2-23 17:05:58 | 显示全部楼层
回复 3# 楼上风云


    希望AUTOIT的帮助也能做到跟本文一样的详细内容(包含简单例子)的帮助就好了!
发表于 2013-2-23 19:52:15 | 显示全部楼层
非常不错的软件,写可
发表于 2013-2-23 19:52:39 | 显示全部楼层
非常不错的软件,谢谢楼主啊
发表于 2013-2-23 20:02:38 | 显示全部楼层
非常不错的软件,谢谢楼主啊
发表于 2013-9-10 14:30:37 | 显示全部楼层
来学习学习。
发表于 2013-9-11 10:25:45 | 显示全部楼层
学习了谢谢楼主
发表于 2014-1-3 14:24:01 | 显示全部楼层
谢谢分享!
发表于 2014-3-2 16:37:55 | 显示全部楼层
正想看这方面的资料.
发表于 2014-3-4 13:30:20 | 显示全部楼层
来学习学习
发表于 2014-3-8 18:04:35 | 显示全部楼层
暂时还不理解先做个记号
发表于 2014-4-11 11:06:20 | 显示全部楼层
这个东西很强大,谢谢
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-3-29 16:07 , Processed in 0.082432 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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