VBScript的内置对象Dictionary
11.1 VBScript的内置对象概述
属性(Property)和方法(Method)构成对象,属性是对象的内嵌变量,方法是对象的内嵌函数。(以Dreamweaver中的Behaviors是由Event和Actions构成做类比讲解)
11.2 Dictionary对象概述
Dictionary对象的作用是保存数据键和项目对,其功能类似二元数组,即把关键字和关联的项目合在一起。下列脚本可形象地说明Dictionary对象的用法:
Dim gyc(定义变量gyc)
Set gyc=CreateObject("Scripting.Dictionary")(创建的Dictionary脚本对象,其名称为gyc)
gyc.Add "0","星期日"(添加项目和键,其中Add是Dictionary对象的方法之一)
gyc.Add "1","星期一"(同上)
gyc.Add "2","星期二"(同上)
11.3 Dictionary对象的属性
n CompareMode属性
设置并返回在Dictionary对象中比较字符串关键字的比较模式,其语法为:
Object.CompareMode〔=Compare〕
n Count属性
只读属性,返回一个Dictionary对象包含的项目数,其语法如下:
Object.Count
n Key属性
在Dictionary对象中设置Key,其语法如下:
Object.Key(Key)=NewKey
其中Object为Dictionary对象的名称;参数Key为必选项,是被改变的Key值;参数NewKey为必选项,表示代替指定Key值的新值;若在更改Key值时未找到Key,脚本将发生运行错误。Key属性的用法见下实例:
Dim gyc
Set gyc=CreateObject("Scripting.Dictionary")
gyc.Add "0","星期日"
gyc.Add "1","星期一"
gyc.Add "2","星期二"
gyc.key("0")="Sunday"(将"0"的键设置为"Sunday")
n Item属性
设置或返回Dictionary对象中指定的Key对应的Key相应的Item,其语法如下:
Object.Item(Key)〔=NewItem〕
其中Object为Dictionary对象的名称;参数Key为必选项,表示与检索或添加的Item相关联的Key;参数NewItem为可选项;Item属性的用法见如下属性:
Dim gyc
Set gyc=CreateObject("Scripting.Dictionary")
gyc.Add "0","星期日"
gyc.Add "1","星期一"
gyc.Add "2","星期二"
gyc.key("0")="Sunday"(将"0"的键设置为"Sunday")
Itemgyc=gyc.Item("0")(返回县官项目"Sunday")
11.4 Dictionary对象的方法
n Add方法
向Dictionary对象中添加键和项目对,其语法如下:
Object.Add Key,Item
其中Object为Dictionary对象的名称;参数Key为必选项,为与添加的Item相关的Key;参数Item为必选项,为与添加的Key相关的Item。
n Exists方法
若在Dictionary对象中存在指定键,则返回True;若不存在,则返回False,其语法如下:
Object.Exists(Key)
其中Object为Dictionary对象的名称;参数Key为必选项,为在Dictionary对象中查找的Key值;关于Exists方法的实例如下:
<html>
<head>
<title>Welcome…</title>
<Script Language="VBScript">
<!--
Function FindKey()
Dim gyc
Set gyc=CreateObject("Scripting.Dictionary")
gyc.Add "0","星期日"
gyc.Add "1","星期一"
gyc.Add "2","星期二"
If gyc.Exists("2") Then
FindKey=True
Else
FindKey=False
End If
MsgBox FindKey
End Function
-->
</Script>
</head>
<body οnlοad="FindKey">
<hr Size="1",Color="#FF0000">
</body>
</html>
n Keys方法
返回一个数组,其中包含有Dictionary对象的所有现存键,其语法如下:
Object.Keys
其中Object为Dictionary对象的名称,其实例如下:
<html>
<head>
<title>Welcome...</title>
<Script Language="VBScript">
<!--
Function DicKeys()
Dim gyc,i,allkey,strkeys
Set gyc=CreateObject("Scripting.Dictionary")
gyc.Add "0","星期日"
gyc.Add "1","星期一"
gyc.Add "2","星期二"
allkey=gyc.keys
For i=0 to gyc.Count-1
strkeys=strkeys & allkey(i) & Chr(10)
Next
Dickeys=strkeys
MsgBox Dickeys
End Function
-->
</Script>
</head>
<body οnlοad="DicKeys">
<hr Size="1",Color="#FF0000">
</body>
</html>
脚本的输出结果为0,1,2(注意区别Items方法)
n Items方法
返回一个数组,其中包含有Dictionary对象的所有项目,其语法如下:
Object.Items
其中Object为Dictionary对象的名称,其实例如下:
<html>
<head>
<title>Welcome...</title>
<Script Language="VBScript">
<!--
Function DicItems()
Dim gyc,i,allitem,stritems
Set gyc=CreateObject("Scripting.Dictionary")
gyc.Add "0","星期日"
gyc.Add "1","星期一"
gyc.Add "2","星期二"
allitem=gyc.Items
For i=0 to gyc.Count-1
stritems=stritems & allitem(i) & Chr(10)
Next
DicItems=stritems
MsgBox DicItems
End Function
-->
</Script>
</head>
<body οnlοad="DicItems">
<hr Size="1",Color="#FF0000">
</body>
</html>
脚本的输出结果为星期日、星期一、星期二(注意区别Key方法)
n Remove方法
从Dictionary对象中删除键和项目对,其语法如下:
Object.Remove(Key)
其中Object是Dictionary对象的名称;参数Key为必选项,为要从Dictionary对象中删除的键和项目对相关联的Key,若Object.Remove(Key)中指定的Key不存在,将发生脚本错误,其实例如下:
Dim gyc
Set gyc=CreateObject("Scripting.Dictionary")
gyc.Add "0","星期日"
gyc.Add "1","星期一"
gyc.Add "2","星期二"
gyc.Remove("0")(删除Dictionary对象中的第一个项目对)
n RemoveAll方法
删除Dictionary对象中的所有键和项目对,其语法如下:
Object.RemoveAll
其中Object为Dictionary对象的名称;其实例如下:
Dim gyc
Set gyc=CreateObject("Scripting.Dictionary")
gyc.Add "0","星期日"
gyc.Add "1","星期一"
gyc.Add "2","星期二"
gyc.RemoveAll(清除Dictionary对象)