VBS基础篇 - vbscript Dictionary对象

所属分类: 脚本专栏 / vbs 阅读数: 1928
收藏 0 赞 0 分享

Dictionary是存储数据键和项目对的对象,其主要属性有Count、Item、Key,主要方法有Add、Exists、Items、Keys、Remove、RemoveAll。
创建Dictionary对象 

'定义并创建Dictionary对象,使用CreateObject创建并返回自动化对象的引用
Dim Dic
Set Dic = CreateObject("Scripting.Dictionary")

添加键值 

Dim Dic
Set Dic = CreateObject("Scripting.Dictionary")
'向Dictionary对象中添加键值对
Dic.Add "Name", "Sirrah" 'Add方法第一个参数是Key值,第二个是Item值
Dic.Add "Age", 23  

删除键值   

Dim Dic
Set Dic = CreateObject("Scripting.Dictionary")
Dic.Add "Name", "Sirrah" '向Dictionary对象中添加键值对
Dic.Add "Age", 23
Dic.Item("Age") = 22 '修改键Age的值
MsgBox Dic.Item("Age") '输出22 

判断键是否存在  

Dim Dic
Set Dic = CreateObject("Scripting.Dictionary")
Dic.Add "Name", "Sirrah" '向Dictionary对象中添加键值对
Dic.Add "Age", 23
MsgBox Dic.Exists("Age") '判断键是否存在 

输出所有键值
输出Dictionary对象所有键值,这边将介绍2种常用的循环方法,具体代码如下:

Dim Dic,Dics
Set Dic = CreateObject("Scripting.Dictionary")
Dic.Add "Name", "Sirrah" '向Dictionary对象中添加键值对
Dic.Add "Age", 23
Dics = dic.Items 'Items返回一个包含所有Item值的数组
For i = 0 To dic.Count - 1 'Count返回Dictionary对象键数目
 str = str & Dics(i) & vbCrlf
Next
MsgBox(str)
Dim Dic,Dics
Set Dics = CreateObject("Scripting.Dictionary")
Dics.Add "Name", "Sirrah" '向Dictionary对象中添加键值对
Dics.Add "Age", 23
For Each Dic In Dics '循环遍历Dictionary键,并输出键值
 MsgBox Dics.Item(Dic)
Next

补充一个实例

脚本文件:a.vbs,包含字典的添加、删除、判断键是否存在、修改键、修改值、遍历、统计键值对个数

'建立字典
Dim Dict : Set Dict = CreateObject("Scripting.Dictionary")

'添加键值对
Dict.Add "Key1", "Item1"
Dict.Add "Key2", "Item2"
Dict.Add "Key3", "Item3"

'字典中键值对数量
WScript.Echo "字典中现有键值对数量: " & Dict.Count '让一个脚本在屏幕上显示文本信息

WScript.Echo 

'检查指定键是否存在
If Dict.Exists("Key1") Then
 WScript.Echo "Key1 存在!"
Else
 WScript.Echo "Key1 不存在!"
End If

If Dict.Exists("Keyn") Then
 WScript.Echo "Keyn 存在!"
Else
 WScript.Echo "Keyn 不存在!"
End If

WScript.Echo 

'遍历字典
Sub TraverseDict
 Dim DictKeys, DictItems, Counter
 DictKeys = Dict.Keys
 DictItems = Dict.Items 'Items返回一个包含所有Item值的数组
 For Counter = 0 To Dict.Count - 1 'Count返回Dictionary对象键数目
 WScript.Echo _
  "键: " & DictKeys(Counter) & _ '& 字符串连接运算符
  "值: " & DictItems(Counter)
 Next
End Sub

TraverseDict

WScript.Echo 

'在一个键值对中,修改键或修改值
Dict.Key("Key2") = "Keyx"
Dict.Item("Key1") = "Itemx"
TraverseDict

WScript.Echo 

'删除指定键
Dict.Remove("Key3")
TraverseDict

WScript.Echo 

'删除全部键
Dict.RemoveAll
WScript.Echo "字典中现有键值对数量: " & Dict.Count

调用方法:通过双击a.bat调用,a.bat代码如下:

cscript a.vbs
pause

运行结果截图:

更多精彩内容其他人还在看

vbscript Split函数用法详解(字符串转数组函数)

本文详细介绍了vbscript中split函数的用法,有关split函数的一些实例,vbscript中split函数的语法介绍,有需要的朋友参考下
收藏 0 赞 0 分享

VBS实现将Excel表格保存为txt文本

希望能够找到个能给excel表另存为TXT的VBS代码,虽然另存为可以选择,但还是需要直接VBS执行这一步另存为TXT格式的,应该如何写代码呢
收藏 0 赞 0 分享

vbs解决处理TXT文本数据相关问题实现代码

使用vbs处理txt数据时,会遇到一些问题,本文将提供详细的解决方法,希望可以帮助你们
收藏 0 赞 0 分享

关于vbs 生成静态页面过程中出现的问题

访问某个aspx页面,然后把服务器返回的页面以filestream 的形式保存为html格式,接下来将介绍实现代码
收藏 0 赞 0 分享

dim函数第三个参数设置截取字符的长度问题

dim函数的第三个参数,也就是截取字符的长度,我在设置这个的时候,出了些问题,提示无效的过程调用或参数,本文详细介绍如何解决
收藏 0 赞 0 分享

邪恶的eval和new Function使用介绍

这些代码可以干什么?可以肯定的是可以干很多猥琐的事
收藏 0 赞 0 分享

WScript.Shell对象SpecialFolders属性未公开文档分享

WshShell对象的SpecialFolders属性返WshSpecialFolders 对象,该对象是一个特殊文件夹集合,其中包含整套Windows特殊文件夹
收藏 0 赞 0 分享

用VBS修改(设置)系统时间和日期的代码

用 VBS 把系统的时间修改到2038年1月19日3时14分07秒之后,这样某些依赖于 Unix 时间戳的程序就会出问题。那么怎样用 VBS 修改系统的时间呢
收藏 0 赞 0 分享

VBS For Next循环的一些细节

For Next 语句是 VBS 中常用的循环语句,你可能已经用过无数次 For Next 循环,但是你是否注意过它的一些细节呢
收藏 0 赞 0 分享

VBS For Next循环的陷阱分享

在《VBS For Next循环的一些细节》中说到了 For Next 循环的控制变量仅仅在循环开始前求值一次,但是其中存在一处陷阱
收藏 0 赞 0 分享
查看更多