51testing论坛版主,专注于软件测试及测试吐槽,屌丝测试攻城师一枚。。。。。。。。。。。。。。。。。。。。。。。。。新浪微博:@没翅膀的飞鱼-------邮件交流:wzb_minitester@126.com------

VBScript之数组

上一篇 / 下一篇  2012-12-13 22:08:09 / 个人分类:VBScript系列

这篇主要介绍数组的声明及常见的几种处理方式。

常用的数组声明方式有:

普通方式:

Dim arr(2) ‘静态数组声明

arr(0) = “test1″

arr(1) = “test2″

arr(2) = “test3″

msgbox arr(1) ‘打印出test2

Array函数方式:

arr Array(“t1″,”t2″,”t3″)

msgbox arr(1) ‘打印出t2

动态数组声明:

将变量声明为动态数组,只需要一对空的圆括号:

Dim arr()

但是用以上方式声明的数组其中没有任何维度,变量名后的圆括号告诉VBS您需要的是一个数组,但是忽略了上界消息。

用以下声明可以改变动态数组的维度:

ReDim arr(3)

使用Redim要时刻注意一点:用Redim改变数组大小时,数组中所有的数据都会被清空。如果我们实际使用数组时想增加数组维度,但是又不想以前放在数组中的数据丢失怎么办?这时可以用Preserve关键字,看下面脚本:

OptionExplicit

Dim astrphonelist()
ReDimPreserve astrphonelist(1,0)
astrphonelist(0,0) = "BINBBY"
astrphonelist(1,0) = "hello"

ReDimPreserve astrphonelist(1,1)
astrphonelist(0,1) = "BINBBY1"
astrphonelist(1,1) = "hello1"

ReDimPreserve astrphonelist(1,2)
astrphonelist(0,2) = "BINBBY2"
astrphonelist(1,2) = "hello2"

MsgBox  astrphonelist(1,2) 

使用Preserve关键字也要注意一点:只能改变数组中最后一个维度的大小(从上面脚本也可以看出),这也是为什么在使用二维数组时,最好将第一维视为列,第二维视为行。从上面还可以看出数组的下界为0,也被称为基于0的,Vbscript中的数组可以有60维。

 

    接下来具体讲解下数组的常见处理方式:

     1. LBound函数和UBound函数

arr = array("t1","t2","t3")
For i=0 To UBound(arr)-LBound(arr)
MsgBox arr(i)
Next

     分析:UBound返回数组最大下标,LBound返回数组最小下标。

       2. Join函数

arr = array("t1","t2","t3")
MsgBox Join(arr,",")

     分析:最终打印结果为“t1,t2,t3”,Join函数主要用于拼接数组,并可以控制分割的符号。

      3. Split函数

stng = "t1,t2,t3"
arr = Split(stng,",")
MsgBox arr(0)
MsgBox arr(1)
MsgBox arr(2)

    分析:此函数可以把有一定规律的字符串进行分割,相当于join函数的逆向思维。

     4.清除数组

   通过Erase语句可以彻底地清空数组:

     Erase  arr

     Erase对于静态数组和动态数组的效果上有些不同。对于静态数组,数组元素中的数据会被清空,但是这些元素本身依然存在---只是数据被清空了;对于动态数组,Erase语句会彻底释放其所占有的内存,数据会被清空,元素本身也会被销毁。要想恢复它们,必须再用RdDim语句给这个数组添加元素。

写于2012-12-13    没翅膀的飞鱼

TAG:

 

评分:0

我来说两句

Open Toolbar