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,对象,数组
0
投稿

猜你喜欢

  • 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
  • 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
  • javascript实现划词标记+划词搜索功能

    2008-02-21 13:20:00
  • 增加 javascript 的 trim 函数

    2008-04-20 16:54:00
  • 玩体验,先忘掉自己

    2010-01-30 13:36:00
  • 设计评论表单[译]

    2009-03-25 20:41:00
  • asp之家 网络编程 m.aspxhome.com