VBS 脚本中的字典、动态数组、队列和堆栈实现代码
1.编写环境
今天突发奇想下载了个gVim来写VBS脚本,我用的版本是7.4的
在写脚本前,需要在gVim的安装根目录下,找到文件“_vimrc”,在里面添加下面三行:
set number
set softtabstop=4
set tabstop=4
意思分别是“显示行号”、“按退格键一次删掉4个空格”和“设定Tab长度为4个字符”
这个设置类似于Linux系统下文件“.vimrc”的配置
1.字典:Scripting.Dictionary
VBS中的字典需要使用Scripting.Dictionary
脚本文件:a.vbs,包含字典的添加、删除、判断键是否存在、修改键、修改值、遍历、统计键值对个数
Option Explicit '建立字典 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 For Counter = 0 To Dict.Count - 1 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
运行结果截图:
2.动态数组:System.Collections.ArrayList
VBS中的动态数组需要使用System.Collections.ArrayList
脚本文件:b.vbs,包含动态数组的添加元素、删除元素、遍历、统计元素个数、清空
Option Explicit '建立动态数组 Dim Arrl : Set Arrl = CreateObject("System.Collections.ArrayList") '添加元素 Arrl.Add "Element3" Arrl.Add "Element2" Arrl.Add "Element1" '查看动态数组中的元素数 WScript.Echo "动态数组中现有元素数量: " & Arrl.Count WScript.Echo "动态数组容量: " & Arrl.Capacity WScript.Echo '遍历动态数组 Sub TraverseArrl Dim Counter For Counter = 0 To Arrl.Count - 1 WScript.Echo Arrl(Counter) Next End Sub TraverseArrl WScript.Echo '动态数组排序 Arrl.Sort TraverseArrl WScript.Echo '删除指定元素 Arrl.Remove("Element1") TraverseArrl WScript.Echo '清空全部元素 Arrl.Clear WScript.Echo "动态数组中现有元素数量: " & Arrl.Count WScript.Echo "动态数组容量: " & Arrl.Capacity
调用方法:通过双击b.bat调用,b.bat代码如下:
cscript b.vbs
pause
运行结果截图:
3.队列:System.Collections.Queue
VBS中的队列需要使用System.Collections.Queue
脚本文件:c.vbs,包含队列的添加元素(入队)、删除元素(出队)、遍历、统计元素个数、清空
Option Explicit '建立队列 Dim Que : Set Que = CreateObject("System.Collections.Queue") Que.EnQueue("Element1") Que.EnQueue("Element2") Que.EnQueue("Element3") '查看队列中的元素数 WScript.Echo "队列中的元素数: " & Que.Count WScript.Echo '遍历队列 Sub TraverseQue Dim ArrQue : ArrQue = Que.ToArray Dim Counter For Counter = 0 To UBound(ArrQue) WScript.Echo ArrQue(Counter) Next End Sub TraverseQue WScript.Echo '退出队列 WScript.Echo Que.DeQueue WScript.Echo "---" TraverseQue WScript.Echo '清空队列 Que.Clear WScript.Echo "队列中的元素数: " & Que.Count
调用方法:通过双击c.bat调用,c.bat代码如下:
cscript c.vbs
pause
运行结果截图:
4.堆栈:System.Collections.Stack
VBS中的堆栈需要使用System.Collections.Stack
脚本文件:d.vbs,包含堆栈的添加元素(压栈)、删除元素(出栈)、遍历、统计元素个数、清空
Option Explicit '建立堆栈 Dim Stk : Set Stk = CreateObject("System.Collections.Stack") Stk.Push "Element1" Stk.Push "Element2" Stk.Push "Element3" '查看堆栈中的元素数 WScript.Echo "堆栈中的元素数: " & Stk.Count WScript.Echo '遍历堆栈 Sub TraverseStk Dim ArrStk : ArrStk = Stk.ToArray Dim Counter For Counter = 0 To UBound(ArrStk) WScript.Echo ArrStk(Counter) Next End Sub TraverseStk WScript.Echo '元素出栈 WScript.Echo Stk.Pop WScript.Echo "---" TraverseStk WScript.Echo '清空堆栈 Stk.Clear WScript.Echo "堆栈中的元素数: " & Stk.Count
调用方法:通过双击d.bat调用,d.bat代码如下:
cscript d.vbs
pause
运行结果截图:
可以看出,遍历队列和堆栈时,遍历顺序时由出队和出栈的顺序决定的,而不是入队和压栈的顺序
- [VBS]脚本中的字典、动态数组、队列和堆栈
- 用vbs实现的exe2swf工具脚本代码
- 用vbs实现本地连接禁用/启用脚本代码
- 堆栈与链表与队列代码实现
- Vbs脚本实现radmin终极后门代码_删除自身
- vbs实现的eMule电驴自动关机脚本代码
- 用VBS脚本实现更换Windows Xp序列号的代码
- 用vbs实现解除注册表CMD、Regedit、Taskmgr限制的脚本代码
- vbs脚本实现下载jre包并静默安装的代码实例
- 线性表、堆栈、队列的特点,及代码实现
- 程序员面试题精选(48):两个堆栈模拟队列c++代码实现
- VBS脚本常用经典代码收集
- 堆栈及队列的实现
- shell脚本实现同时多台远程主机执行命令的代码分享
- 用动态数组实现堆栈数据结构
- 用VBS代码实现简单的场景恢复实例
- 利用vbs脚本实现静态路由备份策略
- Shell脚本实现C语言代码行数统计
- python自动化工具日志查询分析脚本代码实现
- 数据结构之链表、栈和队列 java代码实现