工控随笔_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.算术运 ...
随机推荐
- spring cloud配置高可用eureka时遇到的一些坑
考虑到注册中心的高可用,今天搭建一下eureka集群,并在中途遇到一些小的坑,前前后后花了两个小时来排除,在这里记录一下,以供后面查看. 首先,贴上要达到的效果: 一.起两个eureka模拟集群,在D ...
- border-radius,box-shadow兼容性解决办法
css3 border-radius不支持IE8/IE7的四种解决方法 标签: cssborder-radius兼容性 时间:2016-07-18 css3 border-radius用于设置HT ...
- 帝国cms中下拉框select的绑定
在修改数据模型中,将下拉框的表示代码换成下: 将id换成自己的id地址.数据库查询中的classid换成自己创建栏目的id. <select name="diqu" id=& ...
- 如何通过Chrome远程调试android设备上的Web网站
网上的帖子很多,但很多都是老版本的,试过了,根本不管用,花了一天时间,终于在本机试验通过了,特记录下来,以备用.有需要的朋友也可以参考.先上一张图,看看PC端chrome上调试的效果: 左边是手机的模 ...
- vue使用vue-video-player在直播中的应用
文档地址:https://github.com/savokiss/vue-videojs-demo live demo地址:https://github.com/savokiss/vue-videoj ...
- 番外篇1:在Windows环境中安装JDK
他山之石,可以攻玉!欢迎关注我的微信公众号 本文作为构建第一个Java程序的番外篇一,跟大家探讨下在Windows下怎么安装JDK.由于本人没有Mac,因此如果是Mac的同学,请自行百度哦! 读前预览 ...
- MATLAB 进行五种边缘检测
自定义函数: function []=edge_detect(image_name) a=imread(image_name); I=rgb2gray(a); BW1=edge(I,'Roberts' ...
- Python入门 (一)
本文是个人python学习笔记,学习资料为廖雪峰python教程,如需更多内容,请移步廖老师官方网站. 一 安装 官网下载安装包安装,安装好之后,在命令提示符输入python进入Python交互模式: ...
- JDK无法卸载问题解决
在控制面板卸载JDK时,显示正在收集删除文件,进度条满了之后就闪退了,但JDK还在,试了几次都是如此. 后来,发现微软官方出了“修复阻止程序安装或删除的问题”的应用,可以自动修复包括阻止你安装或删除程 ...
- 15个HTML元素方法!
首先让我们来讨论一下 HTML 与 DOM 之间的区别. 显然,普通的 <table> 元素就是一段 HTML 代码,它可以应用在任何一个以 .html 为扩展名的文件中.元素自带一系列特 ...