工控隨筆_15_西門子_WinCC的VBS腳本_05_變量類型之三_VBS數組

  數組是一種複雜數據類型,不但有數組自己的數據類型: 數組,還有數組元素中存儲的數據的類型。html

1、vbs中的數組類型數組

  在VBS中提供了兩種數組類型,一種是固定數組,一種是動態數組。函數

一、固定數組oop

  就是在定義的時候數組的大小固定了,也就是說一旦定義了固定的數組,那麼數組能存儲多少的數據就spa

不能改變了。code

二、動態數組orm

  就是在定義的時候並不指定數組的大小,在運行的時候動態的指定數組的大小,這樣就能根據實際狀況htm

設定數組的大小了。blog

 

2、實例ip

' vbs 中的數組

'vbs中數組具備本身的特色
'一、vbs中支持一維、二維和多位數組,最多能有60維
'二、vbs中具備和C語言數組同樣的下標規範,都是從下標0開始
'三、vbs的下標比每一維的長度小1,這個比較多
'四、vbs能夠定義動態數組,即數組的維數和每一維的

'定義一個一維數組
Dim nArrTest(2)
nArrTest(0) = 1
nArrTest(1) = 2
nArrTest(2) = 3
MsgBox nArrTest(0) + nArrTest(1) + nArrTest(2)


'定義維數固定的數組
'定義一個 3行 2列的數組
Dim strArrPhoneList(3,2)
strArrPhoneList(0,0) = "Lily"
strArrPhoneList(0,1) = "001"
strArrPhoneList(0,2) = "138001"

strArrPhoneList(1,0) = "Mike"
strArrPhoneList(1,1) = "002"
strArrPhoneList(1,2) = "138002"

strArrPhoneList(2,0) = "Jack"
strArrPhoneList(2,1) = "003"
strArrPhoneList(2,2) = "138003" 

strArrPhoneList(3,0) = "Jone"
strArrPhoneList(3,1) = "004"
strArrPhoneList(3,2) = "138004"

'這個地方有一個常數 vbCrLf 就是換行符號
'還會回到行頭home位置
Dim strInformation
strInformation = "名字       學號        電話號碼" & vbCrLf 

'循環遍歷數組
'對於固定的數組利用for循環是最好的遍歷方式
Dim nRow
Dim nColumn
For nRow = 0 To 3 
    For nColumn = 0 To 2
        strInformation = strInformation & strArrPhoneList(nRow,nColumn)_
                         &"           "
    Next
    strInformation = strInformation & vbCrLf
Next
'顯示信息
MsgBox strInformation
MsgBox "數組一維的上界爲: " & UBound(strArrPhoneList)
MsgBox "數組二維的上界爲: " & UBound(strArrPhoneList,2)

'定義動態數組
'輸入一組數據
Dim nArrSum()
Dim nArrayLen
Dim nInput

nArrayLen = 0
Do
    '這個地方利用了一個關鍵字, preserve 用來在改變更態數組的維度時
    '保持原數組的數據不變
    ReDim Preserve nArrSum(nArrayLen)
    nInput = InputBox("請輸入數值,輸入 end 結束輸入:","輸入數據","0")
    If IsNumeric(nInput) Then
        nArrSum(nArrayLen) =nInput
        nArrLen = nArrayLen + 1
    Else
        '這個地方須要注意,若是利用上面的方法輸入要注意循環的次數
        ReDim Preserve nArrSum(nArrLen - 1)
        nArrayLen = nArrayLen - 1
    End If
Loop While IsNumeric(nInput)

Dim nLoop
For nLoop = 0 To nArrayLen 
    MsgBox nArrSum(nLoop)
Next

'要注意函數ubound對於一維數組的返回值一直是0,也就是說
'這個函數主要針對多維數組纔有意義
MsgBox "動態數組的一維的上界爲: " & UBound(nArrSum)



'數組的清除
'vbs中提供了一項方便的功能來清除數組
'Erase語句
Erase nArrSum
'下面的語句不能執行應爲
'MsgBox "經過Erase語句清除動態數組後的維數爲: " & UBound(nArrSum,1)


    
    

 

3、Tips

  數組的應用主要要注意數組的下標的下界和上屆,對於動態數組,須要注意。Ubound函數的限制也須要

注意。

 

--------------------------------------------------------------分割線---------------------------------------------------------------

一、文章均爲我的原創,歡迎轉載,轉載請保留出處:https://www.cnblogs.com/volcanol/

二、獲取工控PLC、變頻器、HMI、計算機、Windows、Linux、嵌入式資料點擊:獲取資料

三、若是您以爲文章對您有幫助可轉至頁面上半部分打賞,或移步:打賞 

四、或者在頁面右下角點推薦喲!!!

--------------------------------------------------------------分割線---------------------------------------------------------------

相關文章
相關標籤/搜索