工控随笔_15_西门子_WinCC的VBS脚本_05_变量类型之三_VBS数组
数组是一种复杂数据类型,不但有数组本身的数据类型: 数组,还有数组元素中存储的数据的类型。
一、vbs中的数组类型
在VBS中提供了两种数组类型,一种是固定数组,一种是动态数组。
1、固定数组
就是在定义的时候数组的大小固定了,也就是说一旦定义了固定的数组,那么数组能存储多少的数据就
不能改变了。
2、动态数组
就是在定义的时候并不指定数组的大小,在运行的时候动态的指定数组的大小,这样就能根据实际情况
设定数组的大小了。
二、实例
' vbs 中的数组 'vbs中数组具有自己的特点
'1、vbs中支持一维、二维和多位数组,最多能有60维
'2、vbs中具有和C语言数组一样的下标规范,都是从下标0开始
'3、vbs的下标比每一维的长度小1,这个比较多
'4、vbs可以定义动态数组,即数组的维数和每一维的 '定义一个一维数组
Dim nArrTest()
nArrTest() =
nArrTest() =
nArrTest() =
MsgBox nArrTest() + nArrTest() + nArrTest() '定义维数固定的数组
'定义一个 3行 2列的数组
Dim strArrPhoneList(,)
strArrPhoneList(,) = "Lily"
strArrPhoneList(,) = ""
strArrPhoneList(,) = "" strArrPhoneList(,) = "Mike"
strArrPhoneList(,) = ""
strArrPhoneList(,) = "" strArrPhoneList(,) = "Jack"
strArrPhoneList(,) = ""
strArrPhoneList(,) = "" strArrPhoneList(,) = "Jone"
strArrPhoneList(,) = ""
strArrPhoneList(,) = "" '这个地方有一个常数 vbCrLf 就是换行符号
'还会回到行头home位置
Dim strInformation
strInformation = "名字 学号 电话号码" & vbCrLf '循环遍历数组
'对于固定的数组利用for循环是最好的遍历方式
Dim nRow
Dim nColumn
For nRow = To
For nColumn = To
strInformation = strInformation & strArrPhoneList(nRow,nColumn)_
&" "
Next
strInformation = strInformation & vbCrLf
Next
'显示信息
MsgBox strInformation
MsgBox "数组一维的上界为: " & UBound(strArrPhoneList)
MsgBox "数组二维的上界为: " & UBound(strArrPhoneList,) '定义动态数组
'输入一组数据
Dim nArrSum()
Dim nArrayLen
Dim nInput nArrayLen =
Do
'这个地方利用了一个关键字, preserve 用来在改变动态数组的维度时
'保持原数组的数据不变
ReDim Preserve nArrSum(nArrayLen)
nInput = InputBox("请输入数值,输入 end 结束输入:","输入数据","")
If IsNumeric(nInput) Then
nArrSum(nArrayLen) =nInput
nArrLen = nArrayLen +
Else
'这个地方需要注意,如果利用上面的方法输入要注意循环的次数
ReDim Preserve nArrSum(nArrLen - )
nArrayLen = nArrayLen -
End If
Loop While IsNumeric(nInput) Dim nLoop
For nLoop = To nArrayLen
MsgBox nArrSum(nLoop)
Next '要注意函数ubound对于一维数组的返回值一直是0,也就是说
'这个函数主要针对多维数组才有意义
MsgBox "动态数组的一维的上界为: " & UBound(nArrSum) '数组的清除
'vbs中提供了一项方便的功能来清除数组
'Erase语句
Erase nArrSum
'下面的语句不能执行应为
'MsgBox "通过Erase语句清除动态数组后的维数为: " & UBound(nArrSum,1)
三、Tips
数组的应用主要要注意数组的下标的下界和上届,对于动态数组,需要注意。Ubound函数的限制也需要
注意。
--------------------------------------------------------------分割线---------------------------------------------------------------
1、文章均为个人原创,欢迎转载,转载请保留出处:https://www.cnblogs.com/volcanol/
2、获取工控PLC、变频器、HMI、计算机、Windows、Linux、嵌入式资料点击:获取资料
3、如果您觉得文章对您有帮助可转至页面上半部分打赏,或移步:打赏
4、或者在页面右下角点推荐哟!!!
--------------------------------------------------------------分割线---------------------------------------------------------------
工控随笔_15_西门子_WinCC的VBS脚本_05_变量类型之三_VBS数组的更多相关文章
- 工控随笔_13_西门子_WinCC的VBS脚本_04_变量类型之二
上一个随笔说了一些关于vbs变量类型的内容,这一篇我们继续说说变量类型相关的内容. 一.NULL补充内容 '需要注意的是,NULL不能简单通过 = 来进行比较,而必须通过 'IsNull函数来实现 ' ...
- 工控随笔_12_西门子_WinCC的VBS脚本_03_变量类型
说到编程语言,总是绕不开数据类型,因为数据类型决定了数据可以进行什么样的操作.同时数据类型 从广义上来说是一种数据结构,在过程式编程的过程中,曾经有过这样一种说法: 程序 = 数据结构 + 算法 可见 ...
- 工控随笔_18_西门子_WinCC的VBS脚本_07_变量作用域和传值、传址
在vbs脚本中也存在和其他编程语言一样的概念,那就是变量的作用域,变量的作用域决 定在什么范围内可以访问. 同样的在vbs脚本中对于变量也有一个生命周期, 变量的生命周期决定了变量的存续时间 这个主要 ...
- 工控随笔_10_西门子_WinCC的VBS脚本_01_基础入门
很多人都认为VB语言或者VBS脚本语言是一种很low的语言,从心里看不起VB或者VBS, 但是其实VBS不仅可以做为系统管理员的利器,同样在工控领域VBS语言大有用武之地. 西门子的WinCC提供了两 ...
- 工控随笔_21_西门子_WinCC的VBS脚本_10_对象_01
最近有点小忙,各种事情,心情也不是很好,烦心事特别多,因此最近更新的比较慢. 不敢再松懈了,今天正好有点时间,就继续看了一下VBScript中关于对象的一些内容. 一.对象 OOP是编程规模发展到一定 ...
- 工控随笔_20_西门子_WinCC的VBS脚本_09_常量和流程控制_02
vbs不但提供了分支结构,还提供了丰富的循环形式.一共有3种循环: 1.for循环 2.do...loop循环 3.while循环 各种循环有各自的特点,在使用的时候可以进行转换. 前面已经描述过Fo ...
- 工控随笔_19_西门子_WinCC的VBS脚本_08_常量和流程控制_01
在编程的过程中,有时候我们会使用一些固定的值,例如圆周率,或者某个人的生日,或者家庭住址等等, 这些信息对于一个对象来说一旦确定就不会改变,因此我们在编程的时候也不希望这些信息会改变,在VBS里面 也 ...
- 工控随笔_17_西门子_WinCC的VBS脚本_06_过程和函数
和其他语言一样,vbs提供了过程和函数机制,通过函数和过程可以优化代码结构和实现代码复用, 减少代码的编写量. 一.代码 具体不再多说,看实例代码. ' vbs的函数和过程 '1.过程式编程是一大编程 ...
- 工控随笔_11_西门子_WinCC的VBS脚本_02_运算符
VBS脚本做为编程语言,提供了很多的运算符,通过这些运算符,可以实现不同的操作.运算符具有不同的类型 不同的运算符之间具有运算优先级. 一.运算符的分类 大体分为以下几类: 1.赋值运算符 2.算术运 ...
随机推荐
- PHP 基于pdo的数据库操作类
http://www.php.cn/php-weizijiaocheng-404645.html <?php class Pdodb{ protected $pdo; protected ...
- amaze ui 滚动监听
引入 此框架的css js 前提还要有jquery http://amazeui.org/javascript/scrollspy 然后看这个链接里的各种动画 运用方法就是 在你想要有动 ...
- Ubuntu软件中心闪退
sudo apt-get update sudo apt-get dist-upgrade sudo apt-get install --reinstall software-center
- python--sort()和sorted()高级排序
1.list中的sort()方法: def sort(self, key=None, reverse=False): # real signature unknown; restored from _ ...
- 暗影精灵2pro——使用一年多后电池鼓包,传说中的更新BIOS问题(惠普15ax-226tx)
17年春天的时候正好赶上自己在东北一所省会城市的211大学读硕毕业,为了更新下自己的装备,同时也是为了纪念在母校读书7年的经历,遂够了一款暗影精灵2pro,如上图右侧所示,是一款颜值较高的很轻薄的笔记 ...
- Golang的数组
Golang数组 package main import "fmt" func main() { // 定义一个长度为10,元素类型为string的值 li2 := [10]str ...
- leetcode 764.Largest Plus Sign
根据题意的话就是在非0的地方开始寻找上下左右分别能够走到的最大步长的. 那么使用暴力的方法竟然leetcode还是给过了. class Solution { public: int orderOfLa ...
- Java内省机制
转自: https://blog.csdn.net/hahalzb/article/details/5972421 1.java内省机制其实通俗的理解为,对自身的进行一个扫描,这个扫描的对象就是我们普 ...
- tensorflow模型ckpt转pb以及其遇到的问题
使用tensorflow训练模型,ckpt作为tensorflow训练生成的模型,可以在tensorflow内部使用.但是如果想要永久保存,最好将其导出成pb的形式. tensorflow已经准备好c ...
- PTA——求n以内k个质数和
PTA 7-51 求n以内最大的k个素数以及它们的和 #include<stdio.h> #include<math.h> int isPrime(int n); int ma ...