Scripting.Dictionary 对象(2)
作者:CNLei 来源:CNLei.blog 发布时间:2007-10-13 09:46:00
修改键或条目的值
可以通过改键的值,或通过修改与特定的键关联的条目的数据,来改变存储在 Dictionary 内的数据。下面的代码改变键为 MyKey 的条目中的数据。
ObjMyData.Item("MyKey"
) = "NewValue" ' In VBScript ObjMyData.Item('MyKey') = 'NewValue'; // In JScript
如果指定的键在 Dictionary 未找到,将在 Dictionary 中创建一个以 MyKey 为键,以 New Value 为其条目值的新的键/条目对。有意思的是,如果使用一个不存在的键来检索条目,不仅得到一个空的字符串(这是可以想到的),而且还在 Dictionary 里添加一个新的键/条目对,键即是指定的键,但条目的数据为空。
可以使用 Key 属性仅改变键的值而不改变与之对应的条目的数据。将一个已存在的键 MyKey 改变为 MyNewKey,可以用:
ObjMyData.Key("MyKey"
) = "NewValue" ' In VBScript ObjMyData.Key('MyKey') = 'NewValue'; // In JScript
如果指定的键未找到,则产生运行期错误。
设置比较模式
Dictionary 的 CompareMode 属性仅适用于 VBScript,不能在 JScript 中使用。当比较字符串键时,允许指定比较的方式。两个允许的值为 BinaryCompare(0) 和 TextCompare(1)。 BinaryCompare(0) 为二进制数对照(即区分大小写); TextCompare(1) 为文本对照(即不区分大小写)。
遍历 Dictionary
研究 Dictionary 时,有两个方法和一个属性需要特别注意,它们允许我们遍历存储在 Dictionary 里的所有键/条目对。 Items 方法用一个一维数组的形式返回 Dictionary 里所有的条目数据,而 keys 方法用一个一维数组返回所有已存在的键值。可以使用 Count 属性得到键或条目的数量。
例如,可以使用下列代码得到名称为 objMyData 的 Dictionary 中所有的键和条目值。注意,虽然 Count 属性保存了在 Dictionary 里的键/条目数量,但 VBScript 和 JScript 的数组总是从下标 0 开始的。因此,数组下标应从 0 到 Count-1。
'In VBScript:
arrKeys = objMyData.Keys 'Get all the keys into an array
arrItems = objMyData.Items 'Get all the items into an array
For intLoop = 0 To objMyData.Count – 1 'Iterate through the array
StrThisKey = arrKeys(intLoop) 'This is the key value
StrThisItem = arrItems(intLoop) 'This is the item (data) value
Next// In JScript
// Get VB-style arrays using the Keys() and Items() methods
var arrKeys = new VBArray(objMyData.Keys()).toArray();
var arrItems = new VBArray(objMyData.Items()).toArray();
for (intLoop = 0; intLoop < objMyData.Count; intLoop++) {
// Iterate through the arrays
strThisKey = arrKeys[intLoop]; // This is the key value
strThisItem = arrItems[intLoop]; // This is the item (data) value
}
在 VBScript 里也可以使用 For Each … Next 语句完成同样的功能:
' Iterate the dictionary as a collection in VBScript
For Each objItem in arrItems
Response.Write objItem & " = " & arrItems(objItem) & "<br>"
Next
猜你喜欢
- 写个小教程,以期能让大家对jQuery有所了解,甚至喜欢上它(请不要怪我)。不废话,先说明我们的目的。我们知道,当代浏览器(modern b
- 用XMlhttp生成html页面,相关函数如下:<% ’定义xmlhttp function Get
- 当where子句对某一列使用函数时,除非利用这个简单的技术强制索引,否则Oracle优化器不能在查询中使用索引。通常情况下,如果在WHERE
- 一、创建和管理表 1、创建表语法 create table 表名(column datatype [default expr][,colum
- 我在前几天的博客中翻译了一篇《20个对学习CSS3大有裨益的资源》的文章,其中推荐了Get started with CSS 3,本文为其中
- 404错误是指在服务器找不到指定的页面。404错误页面是可以自定义的。Smashing Magazine为我们挑选了40个有创意的404错误
- 高层的期望“3个月内,我希望网站能增加X注册用户,每日的独立IP到Y,网站盈利达到Z……”作为一个团队的领袖或者产品负责人,这样的期望是根据
- HTTP-REFERER这个变量已经越来越不可靠了,完全就是可以伪造出来的东东。 以下是伪造方法:ASP/Visual Basic代码 di
- 阅读Chapter 1 清单Chapter 2 标题总览:不但所有网页都需要有标题,而且如果标记正确的话,他们能为网页设计和易用性
- IE 一如既往地带来问题。真的,我觉得 IE 坚持自己的一套无所谓,不支持或者不完全支持标准也无所谓。但是,IE6 IE7 IE8 这三个版
- <html><head><title>不刷新页面查询的方法</title><meta
- jQuery 1.4 源码 449 行(core.js 431 行),判断是否为函数的方法如下(思路来源于 Douglas Crockfor
- 昨天给公司服务器重做了一下系统,遇到Asp附件无法上传,之前服务器上使用好好的,怎么重做了就不正常了,于是一番google,baidu,下面
- 最近在工作当中遇到一个问题 有个页面需要添加一个浏览历史记录功能具体来说就是要记录下用户在此网站的点击历史 并把它们降序排列出来(只显示前6
- SQL Server的以前版本在跟踪对象相关性方面做的并不好。原因是所有的对象相关性都是由对象ID来跟踪的,这意味着对象一开始就必须存在。但
- 一. 10句话1.不要依赖register_global=ON的环境,从你刚懂得配置php运行环境甚至尚不明白register_global
- 问: 如果数据表中有时间字段,现在要迁移到其他时区的服务器上,该如何处理呢?答:在高版本的mysqldump中,新增了一个选项:--tz-u
- asp获取application对象代码如下: <%application("new&qu
- 本章的前面讨论如何使用SQL向一个表中插入数据。但是,如果你需要向一个表中添加许多条记录,使用SQL语句输入数据是很不方便的。幸运的是,My
- 1 create table test(coltest varchar(20))2 实现这一功能 的 sql 语句 s