• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    VBS 脚本中的字典、动态数组、队列和堆栈实现代码

    发布者: 晋3555 | 发布时间: 2025-8-14 02:08| 查看数: 36| 评论数: 0|帖子模式

    1.编写环境
    今天突发奇想下载了个gVim来写VBS脚本,我用的版本是7.4的
    在写脚本前,需要在gVim的安装根目录下,找到文件“_vimrc”,在里面添加下面三行:
    1. set number
    2. set softtabstop=4
    3. set tabstop=4
    复制代码
    意思分别是“显示行号”、“按退格键一次删掉4个空格”和“设定Tab长度为4个字符”
    这个设置类似于Linux系统下文件“.vimrc”的配置
    1.字典:Scripting.Dictionary
    VBS中的字典需要使用Scripting.Dictionary
    脚本文件:a.vbs,包含字典的添加、删除、判断键是否存在、修改键、修改值、遍历、统计键值对个数
    1. Option Explicit

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

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

    8. '字典中键值对数量
    9. WScript.Echo "字典中现有键值对数量: " & Dict.Count

    10. WScript.Echo

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

    17. If Dict.Exists("Keyn") Then
    18.   WScript.Echo "Keyn 存在!"
    19. Else
    20.   WScript.Echo "Keyn 不存在!"
    21. End If

    22. WScript.Echo

    23. '遍历字典
    24. Sub TraverseDict
    25.   Dim DictKeys, DictItems, Counter
    26.   DictKeys = Dict.Keys
    27.   DictItems = Dict.Items
    28.   For Counter = 0 To Dict.Count - 1
    29.     WScript.Echo _
    30.       "键: " & DictKeys(Counter) & _
    31.       "值: " & DictItems(Counter)
    32.   Next
    33. End Sub

    34. TraverseDict

    35. WScript.Echo

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

    40. WScript.Echo

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

    44. WScript.Echo

    45. '删除全部键
    46. Dict.RemoveAll
    47. WScript.Echo "字典中现有键值对数量: " & Dict.Count
    复制代码
    调用方法:通过双击a.bat调用,a.bat代码如下:
    1. cscript a.vbs
    2. pause
    复制代码
    运行结果截图:

    2.动态数组:System.Collections.ArrayList
    VBS中的动态数组需要使用System.Collections.ArrayList
    脚本文件:b.vbs,包含动态数组的添加元素、删除元素、遍历、统计元素个数、清空
    1. Option Explicit

    2. '建立动态数组
    3. Dim Arrl : Set Arrl = CreateObject("System.Collections.ArrayList")

    4. '添加元素
    5. Arrl.Add "Element3"
    6. Arrl.Add "Element2"
    7. Arrl.Add "Element1"

    8. '查看动态数组中的元素数
    9. WScript.Echo "动态数组中现有元素数量: " & Arrl.Count
    10. WScript.Echo "动态数组容量: " & Arrl.Capacity

    11. WScript.Echo

    12. '遍历动态数组
    13. Sub TraverseArrl
    14.   Dim Counter
    15.   For Counter = 0 To Arrl.Count - 1
    16.     WScript.Echo Arrl(Counter)
    17.   Next
    18. End Sub
    19. TraverseArrl

    20. WScript.Echo

    21. '动态数组排序
    22. Arrl.Sort
    23. TraverseArrl

    24. WScript.Echo

    25. '删除指定元素
    26. Arrl.Remove("Element1")
    27. TraverseArrl

    28. WScript.Echo

    29. '清空全部元素
    30. Arrl.Clear
    31. WScript.Echo "动态数组中现有元素数量: " & Arrl.Count
    32. WScript.Echo "动态数组容量: " & Arrl.Capacity
    复制代码
    调用方法:通过双击b.bat调用,b.bat代码如下:
    1. cscript b.vbs
    2. pause
    复制代码
    运行结果截图:

    3.队列:System.Collections.Queue
    VBS中的队列需要使用System.Collections.Queue
    脚本文件:c.vbs,包含队列的添加元素(入队)、删除元素(出队)、遍历、统计元素个数、清空
    1. Option Explicit

    2. '建立队列
    3. Dim Que : Set Que = CreateObject("System.Collections.Queue")

    4. Que.EnQueue("Element1")
    5. Que.EnQueue("Element2")
    6. Que.EnQueue("Element3")

    7. '查看队列中的元素数
    8. WScript.Echo "队列中的元素数: " & Que.Count

    9. WScript.Echo

    10. '遍历队列
    11. Sub TraverseQue
    12.   Dim ArrQue : ArrQue = Que.ToArray
    13.   Dim Counter
    14.   For Counter = 0 To UBound(ArrQue)
    15.     WScript.Echo ArrQue(Counter)
    16.   Next
    17. End Sub
    18. TraverseQue

    19. WScript.Echo

    20. '退出队列
    21. WScript.Echo Que.DeQueue
    22. WScript.Echo "---"
    23. TraverseQue
    24. WScript.Echo

    25. '清空队列
    26. Que.Clear
    27. WScript.Echo "队列中的元素数: " & Que.Count
    复制代码
    调用方法:通过双击c.bat调用,c.bat代码如下:
    1. cscript c.vbs
    2. pause
    复制代码
    运行结果截图:

    4.堆栈:System.Collections.Stack
    VBS中的堆栈需要使用System.Collections.Stack
    脚本文件:d.vbs,包含堆栈的添加元素(压栈)、删除元素(出栈)、遍历、统计元素个数、清空
    1. Option Explicit

    2. '建立堆栈
    3. Dim Stk : Set Stk = CreateObject("System.Collections.Stack")

    4. Stk.Push "Element1"
    5. Stk.Push "Element2"
    6. Stk.Push "Element3"

    7. '查看堆栈中的元素数
    8. WScript.Echo "堆栈中的元素数: " & Stk.Count

    9. WScript.Echo

    10. '遍历堆栈
    11. Sub TraverseStk
    12.   Dim ArrStk : ArrStk = Stk.ToArray
    13.   Dim Counter
    14.   For Counter = 0 To UBound(ArrStk)
    15.     WScript.Echo ArrStk(Counter)
    16.   Next
    17. End Sub
    18. TraverseStk

    19. WScript.Echo

    20. '元素出栈
    21. WScript.Echo Stk.Pop
    22. WScript.Echo "---"
    23. TraverseStk

    24. WScript.Echo

    25. '清空堆栈
    26. Stk.Clear
    27. WScript.Echo "堆栈中的元素数: " & Stk.Count
    复制代码
    调用方法:通过双击d.bat调用,d.bat代码如下:
    1. cscript d.vbs
    2. pause
    复制代码
    运行结果截图:

    可以看出,遍历队列和堆栈时,遍历顺序时由出队和出栈的顺序决定的,而不是入队和压栈的顺序

    来源:互联网
    免责声明:如果侵犯了您的权益,请联系站长(1277306191@qq.com),我们会及时删除侵权内容,谢谢合作!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表