[转]ASP实例中VBScript的数组变量讲解

ASP实例中VBScript的数组变量讲解一
数组可以存储一系列相同类型的数据.可以使用循环读取数组中的所有值,如for。
标量变量和数组变量。多数情况下,只需为声明的变量赋一个值。只包含一个值的变量被称为标量变量。有时候,将多个相关值赋给一个变量更为方便,因此可以创建包含一系列值的变量,称为数组变量。数组变量和标量变量是以相同的方式声明的,唯一的区别是声明数组变量时变量名后面带有括号( )。
下例声明了一个包含 11 个元素的一维数组:Dim A(10)
虽然括号中显示的数字是 10,但由于在 VBScript 中所有数组都是基于 0 的,所以这个数组实际上包含 11 个元素。在基于 0 的数组中,数组元素的数目总是括号中显示的数目加 1。这种数组被称为固定大小的数组。
在数组中使用索引为数组的每个元素赋值。从 0 到 10,将数据赋给数组的元素,如下所示:
A(0) = 256
A(1) = 324
A(2) = 100 . . .
A(10) = 55
与此类似,使用索引可以检索到所需的数组元素的数据。
例如:SomeVariable = A(8)
数组并不仅限于一维。数组的维数最大可以为 60(尽管大多数人不能理解超过 3 或 4 的维数)。声明多维数组时用逗号分隔括号中每个表示数组大小的数字。在下例中,MyTable 变量是一个有 6 行和 11 列的二维数组:
Dim MyTable(5, 10)
在二维数组中,括号中第一个数字表示行的数目,第二个数字表示列的数目。
也可以声明动态数组,即在运行脚本时大小发生变化的数组。对数组的最初声明使用 Dim 语句或 ReDim 语句。但是对于动态数组,括号中不包含任何数字。
例如:Dim MyArray()
ReDim AnotherArray()
要使用动态数组,必须随后使用 ReDim 确定维数和每一维的大小。在下例中,ReDim 将动态数组的初始大小设置为 25,而后面的 ReDim 语句将数组的大小重新调整为 30,同时使用 Preserve 关键字在重新调整大小时保留数组的内容。
ReDim MyArray(25)
ReDim Preserve MyArray(30)
重新调整动态数组大小的次数是没有任何限制的,将数组的大小调小时,将会丢失被删除元素的数据。
重定义数组的实例
<% dim x() for i=0 to 10 redim x(i) x(i)=i response.write x(i) next %>
ASP实例中VBScript的数组变量讲解二
使用数组时,有三个函数是你必须掌握的。函数UBOUND()返回一个数组的大小。确切地说,它可以返回数组的某一维的大小。这里有这个函数的一些例子:
<% DIM Product(10,33) %>
<%=UBOUND(Product)%>
<%=UBOUND(Product,1)%>
<%=UBOUND(Product,2)%>
在这个例子中,第一个UBOUND()函数返回值是10。在缺省情况下,这个函数返回的是一个函数的第一维的上界。
第二个UBOUND()函数的返回值与第一个相同。它返回的是数组Product的第一维的上界。
警告
虽然数组的某一维的第一个索引值总是0,但其第一维总是用1表示,不要混淆了维数与索引。
最后,第三个UBOUND()函数的返回值是33。这是数组Product的第二维的维数。
当一个数组不是你声明的,但你需要确定这个数组的大小时,函数UBOUND()是有用的。例如,在第23章“使用记录集中”,你将学习如何从一个数据库表中把记录取到数组中。如果你需要知道这项操作所产生的数组的大小,你可以使用函数 UBOUND()。(知道一个数组的大小使你能够遍历和显示它的所有元素。)
VBScript有一个ERASE语句,可以用来操作固定大小的数组和动态数组。通过对一个静态数组使用ERASE语句,你可以清除这个数组。如果该数组是一个字符串数组,ERASE语句把该数组的所有元素重新初始化为空字符串””。如果该数组是一个数值数组,ERASE语句可以把该数组的所有元素重新初始化为0。这里有一些例子:
<% DIM Product(2) Product(1)=”Running shoes” ERASE Product %>
<%=Product(1)%>
当这个脚本执行时,不会输出任何讯息。ERASE语句清除了数组Product的所有数据,不论有多少元素被分配了值。
当对动态数组使用ERASE语句时,它的作用与上述的不同。当你对动态数组使用ERASE语句时,该数组本身会被删除。在你能重新使用这个数组之前,你必须对它重新初始化。如下例所示:
<% DIM Product() REDIM Product(100) Product(1)=”Running Shoes” ERASE Product %>
这个脚本创建了一个名为Product的动态数组。该数组的索引值为1的元素被赋了一个值。然后,用ERASE语句删除了这个数组。如果你在它被删除之后试图访问这个数组的任何一个元素,则将会发生错误。
当你删除了一个数组后,内存就被释放。对一个访问率很高的站点来说,每一字节的内存都很珍贵。因此当你不再需要一个动态数组时,用ERASE语句删除它是个不错的主意。
操作数组的最后一个有用的函数是ISARRAY()。函数ISARRAY()可以用来测试一个变量表达式是否是一个数组。这里有一个例子:
<% DIM Product(10) DIM somevar %>
<%=ISARRAY(Product)%>
<%=ISARRAY(somevar)%>
在这个例子中,第一个ISARRAY()函数返回TRUE,因为Product实际上是一个数组。第二个ISARRAY()函数返回FALSE,因为变量somevar没有被声明为一个数组。
ASP实例中VBScript的数组变量讲解三
数组函数:Array()[ybj86.cn]
Vbscript定义数组
返回包含数组的 Variant。
Array(arglist)
arglist参数是赋给包含在Variant中的数组元素的值的列表(用逗号分隔)。如果没有指定此参数,则将会创建零长度的数组。
说明:用于引用数组元素的表示符,由跟随有括号的变量名组成,括号中包含指示所需元素的索引号。在下面的示例中,第一条语句创建名为 A 的变量。第二条语句将一个数组赋值给变量 A。最后一条语句将包含在第二个数组元素中的值赋值给另一个变量。
Dim A
A = Array(10,20,30)
B = A(2) ' B is now 30。
注意:未作为数组声明的变量仍可以包含数组。虽然包含数组的 Variant 变量与包含 Variant 元素的数组变量有概念上的不同,但访问数组元素的方法是相同的。

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏