asp dictionary对象使用介绍
作者:亮亮 来源:亮亮博客 时间:2008-05-30 13:51:00
dictionary对象和数组有点相似,但无需用redim来改变dictionary的大小,dictionary也没有多维,dictionary比数组优秀的地方是比数组内建的方法多,操作比数组灵活些,在定位上和频繁访问上比数组效率高
首先建立dictionary对象
set dic=Server.CreateObject("Scripting.Dictionary")
下面是一些基本的用法示例
1.向 dictionary 对象添加新的键/值对
dic.Add "a","这是a"
dic.Add "aa","这是aa"
dic.item("a3")="增加a3"
2.返回dictionary 中某个键的值
response.Write(dic.item("aa")&"<br>")
response.Write(dic.item("a3")&"<br>")
3.为已有的键(key)设置新值
dic.item("aa")="aa的值变了"
response.Write(dic.item("aa")&"<br>")
4.返回在dictionary对象中键/值对的数目
response.Write(dic.count&"<br>")
5.返回在dictionary对象中是否存在指定的键(key)
response.Write(dic.Exists("a")&"<br>")
6.items返回dictionary对象中的所有值的一个数组
itemArr=dic.items
for i=0 to dic.Count-1
Response.Write(itemArr(i)&"<br>")
next
7.keys方法返回dictionary对象中所有key的数组。
keyArr=dic.Keys
for i=0 to dic.Count-1
Response.Write(keyArr(i)&"<br>")
next
8.设置键的比较模式
0 = vbBinaryCompare - 二进制比较
1 = vbTextCompare - 文本比较
2 = vbDatabaseCompare - 数据库比较
本来dic.Exists("A")返回false,但加上比较模式后将返回true
set dic=Server.CreateObject("Scripting.Dictionary")
dic.CompareMode=1
dic.Add "a","这是a"
dic.Add "aa","这是aa"
dic.item("a3")="增加a3"
response.Write(dic.Exists("A")&"<br>")
上面将打印出true
这样写也会报错 dic.Add "A","这是A"
9.删除指定的键/值对
dic.remove("aa")
dic.Exists("aa")将返回false
response.Write(dic.Exists("aa")&"<br>")
10.删除所有的键/值对
dic.removeall
response.Write(dic.Exists("a3")&"<br>")
最后当然就是释放对象
set dic=nothing
上面就是dictionary的一些基本用法,下面看看它的几个应用实例,下面的例子都是网上搜集到的,具体的作者不详!
先看这一个,代码如下:
str="海尔电脑.T618,联想电脑.GD88,TCL电脑.T720i,长虹电视.6610,TCL电脑.3300,长虹电视.M55,海尔电脑.T68ie,长虹电视.7650,长虹电视.7210,海尔电脑.P802,海尔电脑.T312"
response.Write(str&"<br />")
dim dic:Set dic = server.CreateObject("Scripting.Dictionary")
strArr=split(str,",")
for each strAtt in strArr
str2Att=split(strAtt,".")
if dic.Exists(str2Att(0)) then
dic.Item(str2Att(0))=dic.Item(str2Att(0)) & "," & str2Att(1)
else
dic.Add str2Att(0),str2Att(1)
end if
next
for each strKey in dic.Keys
response.write "["&strKey&"]"&dic.Item(strKey)&"<br>"
next
另外一个是利用dictionary创建二维数组的例子,这样做的优点是数组下标可以是字符串并且长度不是固定的
Set a1 = CreateObject("scripting.dictionary")
For i=1 To 9
Set a2 = CreateObject("scripting.dictionary")
For j=1 To 12
a2.add CStr("aaa"&j),CStr("b"&i&"b"&j*10)
Next
a1.add ("bbb"&i),a2
Set a2=Nothing
Next
For i=1 To 9
For j=1 To 12
acs=a1("bbb"&i)("aaa"&j)
response.write acs&" "
Next
response.write "<Br>"
Next
response.end
Set a1=Nothing
标签:dictionary,对象,数组
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
SQL 统计一个数据库中所有表记录的数量
2012-01-29 18:21:36
扩展数据库系统选项实现更高的可扩展性
2009-01-06 11:14:00
将SQL 2000日志迁移到SQL Server 2008
2009-03-25 16:20:00
js自定义快捷,IE,FF有良好的支持
2007-08-25 17:34:00
Server 对象 错误 ASP 0177 800401f3 的解决方案 Server 对象 错误 ASP 0177 800401f3
2009-07-28 17:57:00
按钮在 IE 中两边被拉伸的 BUG
2008-11-17 20:37:00
ASP XML编程objXML.async = False
2011-04-21 10:55:00
常用的匹配正则表达式和实例
2008-06-07 09:19:00
百万级asp分页存储过程代码(ver2.0)
2007-12-17 13:13:00
正则表达式的基本概念
2007-10-17 21:07:00
天气预报调用代码
2008-11-18 15:59:00
![](https://img.aspxhome.com/file/UploadPic/200811/18/g20081115162112-94s.jpg)
Sql Server基本函数
2008-08-20 18:28:00
怎么样用xmlhttp读取远程xml的数据
2008-10-11 13:52:00
asp会员系统如何实现“忘记密码”
2007-09-19 12:17:00
解决用CSS控制DIV居中失效的问题
2010-04-05 21:53:00
成功的用户界面的八个特性[译]
2009-04-20 20:36:00
![](https://img.aspxhome.com/file/UploadPic/20094/20/01-77s.jpg)
javascript实现划词标记+划词搜索功能
2008-02-21 13:20:00
![](https://img.aspxhome.com/file/UploadPic/up/2008022114065212.gif)
增加 javascript 的 trim 函数
2008-04-20 16:54:00
玩体验,先忘掉自己
2010-01-30 13:36:00
![](https://img.aspxhome.com/file/UploadPic/20101/30/resolutions1-82s.png)
设计评论表单[译]
2009-03-25 20:41:00
![](https://img.aspxhome.com/file/UploadPic/20093/25/contact_form-95s.png)