数组是一种复杂数据类型,不但有数组本身的数据类型: 数组,还有数组元素中存储的数据的类型。

一、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数组的更多相关文章

  1. 工控随笔_13_西门子_WinCC的VBS脚本_04_变量类型之二

    上一个随笔说了一些关于vbs变量类型的内容,这一篇我们继续说说变量类型相关的内容. 一.NULL补充内容 '需要注意的是,NULL不能简单通过 = 来进行比较,而必须通过 'IsNull函数来实现 ' ...

  2. 工控随笔_12_西门子_WinCC的VBS脚本_03_变量类型

    说到编程语言,总是绕不开数据类型,因为数据类型决定了数据可以进行什么样的操作.同时数据类型 从广义上来说是一种数据结构,在过程式编程的过程中,曾经有过这样一种说法: 程序 = 数据结构 + 算法 可见 ...

  3. 工控随笔_18_西门子_WinCC的VBS脚本_07_变量作用域和传值、传址

    在vbs脚本中也存在和其他编程语言一样的概念,那就是变量的作用域,变量的作用域决 定在什么范围内可以访问. 同样的在vbs脚本中对于变量也有一个生命周期, 变量的生命周期决定了变量的存续时间 这个主要 ...

  4. 工控随笔_10_西门子_WinCC的VBS脚本_01_基础入门

    很多人都认为VB语言或者VBS脚本语言是一种很low的语言,从心里看不起VB或者VBS, 但是其实VBS不仅可以做为系统管理员的利器,同样在工控领域VBS语言大有用武之地. 西门子的WinCC提供了两 ...

  5. 工控随笔_21_西门子_WinCC的VBS脚本_10_对象_01

    最近有点小忙,各种事情,心情也不是很好,烦心事特别多,因此最近更新的比较慢. 不敢再松懈了,今天正好有点时间,就继续看了一下VBScript中关于对象的一些内容. 一.对象 OOP是编程规模发展到一定 ...

  6. 工控随笔_20_西门子_WinCC的VBS脚本_09_常量和流程控制_02

    vbs不但提供了分支结构,还提供了丰富的循环形式.一共有3种循环: 1.for循环 2.do...loop循环 3.while循环 各种循环有各自的特点,在使用的时候可以进行转换. 前面已经描述过Fo ...

  7. 工控随笔_19_西门子_WinCC的VBS脚本_08_常量和流程控制_01

    在编程的过程中,有时候我们会使用一些固定的值,例如圆周率,或者某个人的生日,或者家庭住址等等, 这些信息对于一个对象来说一旦确定就不会改变,因此我们在编程的时候也不希望这些信息会改变,在VBS里面 也 ...

  8. 工控随笔_17_西门子_WinCC的VBS脚本_06_过程和函数

    和其他语言一样,vbs提供了过程和函数机制,通过函数和过程可以优化代码结构和实现代码复用, 减少代码的编写量. 一.代码 具体不再多说,看实例代码. ' vbs的函数和过程 '1.过程式编程是一大编程 ...

  9. 工控随笔_11_西门子_WinCC的VBS脚本_02_运算符

    VBS脚本做为编程语言,提供了很多的运算符,通过这些运算符,可以实现不同的操作.运算符具有不同的类型 不同的运算符之间具有运算优先级. 一.运算符的分类 大体分为以下几类: 1.赋值运算符 2.算术运 ...

随机推荐

  1. html之跳转锚

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. Java的URL类(二)

    转:https://www.cnblogs.com/brokencolor/p/8575440.html Java的URL类(二) 实例: Java 通过HttpURLConnection Post方 ...

  3. java 二分法学习

    假设有一个数组 { 12, 23, 34, 45, 56, 67, 77, 89, 90 },现要求采用二分法找出指定的数值并将其在数组的索引返回,如果没有找到则返回 -1.代码如下: package ...

  4. Python面面面

    1:Python有哪些特点和优点? 作为一门编程入门语言,Python主要有以下特点和优点: 可解释 具有动态特性 面向对象 简明简单 开源 具有强大的社区支持 当然,实际上Python的优点远不止如 ...

  5. React生命周期简单详细理解

    前言 学习React,生命周期很重要,我们了解完生命周期的各个组件,对写高性能组件会有很大的帮助. Ract生命周期 React 生命周期分为三种状态 1. 初始化 2.更新 3.销毁 初始化 1.g ...

  6. Python学习之路基础篇--11-12Python基础,函数的装饰器

    对于装饰器来说,就是在不改变函数的调用的情况下,对函数的前后增加了些许功能,这完全符合函数的 开放封闭 原则.装饰器的本质 其实就是一个闭包函数. 这是一个装饰器的步骤图 ret = func(*ar ...

  7. rem 自适应适配方法

    rem是指相对于根元素(html)的字体大小的单位,它是一个相对单位,它是css3新增加的一个单位属性,我们现在有很多人用的都是px,但px是一个绝对单位,遇到分辨率不同的设备,做出的页面可能会乱,这 ...

  8. vue配置 请求本地json数据

    第一步:在build文件夹下找到webpack.dev.conf.js文件,在const portfinder = require('portfinder')后添加 //第一步const expres ...

  9. MySQL数据库 命令行 学习笔记(一)

    常用关系型数据库1 MySQL:开源免费的适用于中小型企业的免费数据库2 oracle:甲骨文公司,商业软件,收费,适用于大型电商网站3 db2:IBM公司,银行系统主要采用db24 SqlSever ...

  10. 14. Encryption tools (加密工具 8个)

    SSH(Secure Shell)现在是无处不在的程序,用于在远程机器上登录或执行命令. 它通过不安全的网络在两个不受信任的主机之间提供安全的加密通信,取代了可怕的不安全的telnet / rlogi ...