一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - VBS - VBS 腳本中的字典、動態數組、隊列和堆棧實現代碼

VBS 腳本中的字典、動態數組、隊列和堆棧實現代碼

2020-08-18 10:33VBS腳本之家 VBS

今天用VBS腳本寫了幾個程序,用到了字典(Dictionary)、動態數組(ArrayList)、隊列(Queue)和堆棧(Stack)?,F在寫篇Blog總結一下 ,需要的朋友可以參考下

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,包含字典的添加、刪除、判斷鍵是否存在、修改鍵、修改值、遍歷、統計鍵值對個數

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
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

運行結果截圖:

VBS 腳本中的字典、動態數組、隊列和堆棧實現代碼

2.動態數組:System.Collections.ArrayList

VBS中的動態數組需要使用System.Collections.ArrayList

腳本文件:b.vbs,包含動態數組的添加元素、刪除元素、遍歷、統計元素個數、清空

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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

運行結果截圖:

VBS 腳本中的字典、動態數組、隊列和堆棧實現代碼

3.隊列:System.Collections.Queue

VBS中的隊列需要使用System.Collections.Queue

腳本文件:c.vbs,包含隊列的添加元素(入隊)、刪除元素(出隊)、遍歷、統計元素個數、清空

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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

運行結果截圖:

VBS 腳本中的字典、動態數組、隊列和堆棧實現代碼

4.堆棧:System.Collections.Stack

VBS中的堆棧需要使用System.Collections.Stack

腳本文件:d.vbs,包含堆棧的添加元素(壓棧)、刪除元素(出棧)、遍歷、統計元素個數、清空 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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 腳本中的字典、動態數組、隊列和堆棧實現代碼

可以看出,遍歷隊列和堆棧時,遍歷順序時由出隊和出棧的順序決定的,而不是入隊和壓棧的順序

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美一区二区三区久久久 | 毛片在线免费观看网站 | 男同gay作爰视频网站 | 私人影院在线播放 | 亚洲精品第二页 | 精品国产在天天线在线麻豆 | 国色天香论坛社区在线视频 | 国产免费小视频 | 欧美日本一道高清免费3区 欧美人做人爱a全程免费 | 护士被多人调教到失禁h | 亚洲精品国精品久久99热 | 好猛好紧好硬使劲好大刺激视频 | 国产三级精品91三级在专区 | 天天干天天色综合 | 国产日韩欧美在线播放 | 亚洲国产天堂久久综合网站 | 日本啊v在线观看 | 亚洲色图欧美图片 | 丰满岳乱妇在线观看视频国产 | 成人亚洲欧美日韩在线观看 | 高清麻生希在线 | 久久国产36精品色熟妇 | 免费观看在线aa | 欧美性f | melody中文字幕 | 俄罗斯一级在线播放 | 国产999在线观看 | 无限资源在线观看播放 | 国产精品日本亚洲777 | 韩国美女vip内部2020 | 亚洲欧美精品天堂久久综合一区 | 美女被免费视频 | 69一级毛片 | 日日干天天爽 | 无人知晓小说姜璟免费阅读 | 国产精品一区二区三 | 嗯啊在线观看免费影院 | caoporn超碰最新地址进入 | 国产精品天天看天天爽 | 免费一级特黄特色大片 | 男人和女人全黄一级毛片 |