工控随笔_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、嵌入式资料点击:获取资料

三、若是您以为文章对您有帮助可转至页面上半部分打赏,或移步:打赏 

四、或者在页面右下角点推荐哟!!!

--------------------------------------------------------------分割线---------------------------------------------------------------

相关文章
相关标签/搜索