VBS 数组

 

Private Sub Command1_Click()
Dim a() As String
a = Split(Text1.Text, ",")
For i = 0 To UBound(a)
Print a(i)
Next
End Sub
意思是:将文本框里面的内容以","(逗号)处隔开!!输出到窗体上

--------------------------------------------------------------
for i=1 to UBound(array_name)
document.write(array_name(i)& "<br />")
next
VBSCRIPT中如何输出任意长度数组的所有元素?
--------------------------------------------------------------
假设数组为myArray()
dim   I   as   integer
I   =   UBound(myArray)
就可以了
这里的I是数组的上界,但不是长度。长度应为I+1,因为数组下标从0开始,即myArray(0)。
Ubound(Array)是数组的上界,
Len(Array)才是数组的长度。




-------------------------------------------


VBS动态数组的问题  
i = 0: nStr = ""
Dim MyArray()
Do
a = InputBox("循环直到输入4为止")
ReDim Preserve MyArray(i)
MyArray(i) = a
i = i + 1
Loop Until a = "4"
For i = 0 To UBound(MyArray)
nStr = nStr & MyArray(i) & ","
Next
MsgBox nStr 

补充:--------------------------------------
不一定要 redim 后才能给数组赋值
Dim MyArray(5)
MyArray(0)=455
MyArray(1)=500
.......
因为这时数组中已有元素 0 到 5 号

下面的用法就必须 redim 后才能给数组赋值
dim MyArray()'定义动态数组,此时数组中一个元素都没有
ReDim Preserve MyArray(3)'重定义数组的元素 为  0 到 3 号
MyArray(0)=455
MyArray(1)=500
MyArray(2)=2
MyArray(3)=78


For i = 0 To UBound(MyArray)
nStr = nStr & MyArray(i) & ","
Next
表示:将数组的所有元素用字符串形式连在一起,用“,”分隔,便于显示。
UBound(MyArray) 表示数组元素的最大序号。参见:
--------------------------------------------------------------
VB动态数组的定义方法——ReDim语句 
描述
用于过程级声明动态数组变量并分配或重新分配存储空间。
语法
ReDim [Preserve] varname(subscripts) [, varname(subscripts)] . . .

ReDim 语句语法有以下部分:

 

部分 描述
Preserve 当更改现有数组最后一维的大小时保留数据。
varname 变量名,遵循标准变量命名约定。
subscripts 数组变量的维数,最多可以声明 60 维数组。subscripts 参数语法格式如下:

upper [,upper] . . .

数组的下界总是零。

 

说明
ReDim 语句通常用于指定或修改动态数组的大小,这些数组已用带有空括号的 PrivatePublicDim 语句(没有维数下标)正式声明过。可以重复使用 ReDim 语句更改数组维数和元素数目。

如果使用了 Preserve 关键字,就只能调整数组最后维的大小,并且不能改变数组的维数。例如,如果数组只有一维,就可以修改该数组的大小,因为该维是最后的也是仅有的一维。但是,如果数组有两个或更多维,就只能改变末维的大小并保留数组内容。下面的样例示范了如何不删除动态数组的原有内容而又增加末维的大小。

 

ReDim X(10, 10, 10)
. . .
ReDim Preserve X(10, 10, 15)

小心 如果减小数组的大小,则将丢失被排除的元素中的数据。

变量初始化时,数值变量初始化为 0,字符串变量初始化为零长度字符串 ("")。在使用引用对象的变量前,必须使用 Set 语句将某个现有对象赋予该变量。在进行对象赋值以前,已声明的对象变量有特定值 Nothing

注意:
ReDim语句只能用于动态数组,它可以改变每一维的大小,但不能改变维数。
在同一程序中,ReDim语句还可以多次使用。在用:ReDim语句重新定义数组之前,可以使用:Erase语句将原来的数组删除,

练习一:
ReDim x(0)
Dim i

For i=0 To 2
ReDim x(i)
x(i) = i
MsgBox x(i)
i=i+1
Next

--------------------------------------------
vbs 函数 获取数组字符串的最后一个LastOne 挺方便的
Function jb51(Str,splitStr) '输入字符和分隔符,得到最后一部分 strarr=split(Str,splitStr) lens=ubound(strarr) '获取数组的长度 jb51 = strarr(lens) End Function msgbox jb51("1,2,3", ",")

------------------------------------------------------

VBScript 例子:

数组

Option Explicit

 

Dim arr(3),i

 

For i= 0 To 3

  arr(i) = InputBox (" 输入第 "&i+1&" 个数 ","") ' 输入 4 个数

Next

 

MsgBox " 您输入的数组是: " & Join (arr," ") ' 输出数组 join 函数

输入一个数组并输出

 

Option Explicit

 

Dim arr() ' ReDim arr(1) 代替

 

ReDim arr(1)

arr(0)=0

arr(1)=1

 

ReDim arr(2)

arr(2)=2

Call test (1) ' 扩充数组中的元素 , 发现原来的值没有了

 

ReDim Preserve arr(2)

arr(0)=0

arr(1)=1

Call test (2) ' preserve 关键字保存 数组中的元素

 

 

ReDim arr(1) ' 减小数组的长度 ,发现所有的元素都没了

Call test (3)

 

ReDim arr(2) ' 还原到 第2

arr(0)=0

arr(1)=1

arr(2)=2

Call test (4)21

 

ReDim Preserve arr(1)' preserve 关键字保存 数组中的元素

Call test (5)

 

Sub test(no)

Dim index,i,tmp

tmp = ""

index =UBound (arr) ' 获取数组的上界

For i = 0 To index

    tmp = tmp & arr(i) & " " 

Next

MsgBox " "&no&" 步 的数组是 :"& tmp

End Sub

这个例子设计的动态设定:

dim arr () 来设定动态的数组

在调整数组长度的时候,要注意保持数组中原有的元素(用关键字preserve, 否则将会被清空




 

阅读更多
上一篇正则表达式语法
下一篇VBS 删除数组元素
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭