asp dictionary对象使用介绍
作者:亮亮 来源:亮亮博客 发布时间:2008-05-30 13:51:00
标签:dictionary,对象,数组
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
0
投稿
猜你喜欢
- 在我之前写的几篇网站优化的文章中,着墨最多的是减少HTTP请求。通过减少请求数目,你的浏览器必须能对你的网站所有内容成功检索,总的HTTP请
- Msg 102, Level 15, State 1, Line 3 Incorrect syntax near '+'.
- 我很想自己写一个这样的程序,不过wordpress是php的,我blog是ASP的,只好用ASP写代码了。经过一番折腾测试,终于让我的梦想变
- 如何验证日期输入是否正确?我们可以利用ASP 3.0里的On Error Resume Next来完成这项功能:<%Option&nb
- 方法一、尽量使用复杂的SQL来代替简单的一堆 SQL.同样的事务,一个复杂的SQL完成的效率高于一堆简单SQL完成的效率。有多个查询时,要善
- 这是份总结,有不恰达的地方欢迎一同讨论联系方式 : 龙藏 longzang@taobao.com点击这里全幅围观或者点下面大图去 slide
- 突然想到写这个话题,是基于最近在设计产品界面时,年糕一直在给我们灌输设计的品牌概念以及文化内涵要求而产生的,因之前在界面设计中也遇到一些困惑
- 代码如下: function astro(birth) astro="" if birth=""
- 汉字转换为UTF-8的一段代码终于找到这段代码了,一个ASP写的中文转UTF-8,大家可以试试function chinese2u
- SELECT表名=case when a.colorder=1 then d.name else '' end,表说明=ca
- 《色彩解答》系列之一 色彩层次《色彩解答》系列之二 色彩比例我们知道在设计中有很多对比,大小的对比,形状的对比,长短的对比,多少的对比,这些
- 如何一行行地读取文件?这样就可以做到一行行地读出了:dim input(30) ' 定义一个数组,大小
- CSS网页布局开发中,会有很多小技巧,这里再扩展一下您所想要得到的知识,相信您会有很多收获!一、ul标签在Mozilla中默认是有paddi
- 上一小节讲解了行高与单行纯文字的垂直居中,而如果行内含有图片和文字,在浏览器内浏览时,读者可以发现文字和图片在垂直方向并不是沿中线居中,而是
- 对网站的LOGO设计做了一些归纳,希望得到批评,发现写的太长了,又不忍心删减,就分成两部分了,第一部分是有关设计基础的。第二部分是关于网站L
- 404页面对于站长来说应该并不陌生,其作用无碍乎二点:提高用户体验和增强对搜索引擎的友好性。去年在跟几个朋友在聊天的时候,跟我说404页面不
- Hedger Wang 在国内 blog 上得到的方法:使用 try … finally 结构来使对象最终为 null ,以阻止内存泄露。其
- 相信大家从去年圣诞节开始,逐渐发现淘宝网首页的标志开始有了新的形式,从过往的静态图片节日LOGO变成了FLASH的动画小故事LO
- 软件环境: 1、操作系统:Windows 2000 Server 2、数 据 库:Oracle 8i R2 (8.1.7) for NT 企
- 24小时内记录(即86400秒)$sql="Select video_id,count(id)as n FROM `rec_dow