创建和修改数组

发表于:2007-06-30来源:作者:点击数: 标签:
创建和修改数组 当你需要存储一组相关的值时,你应该使用数组。数组是一个可以存储一组值的变量。例如,你可以创建一个数组,用来存储你的站点上出售的一系列商品: % DIM Product(10) Product(0)=”Trading Card” Product(1)=”Book on Active Sever Pages

创建和修改数组

当你需要存储一组相关的值时,你应该使用数组。数组是一个可以存储一组值的变量。例如,你可以创建一个数组,用来存储你的站点上出售的一系列商品:

<%

DIM Product(10)

Product(0)=”Trading Card”

Product(1)=”Book on Active Sever Pages”

Producr(2)=”Computer Monitor”

%>

在这个例子中,DIM语句用来声明一个数组。与前面讨论的变量不同,数组在使用之前必须声明。这个DIM语句声明了一个可以存储11个值的数组。

注意

VBScript中数组的下标从0开始,因此每个数组的元素个数都比声明语句中的数字多1。(用刚才讨论的数组Product,你可以存储11个值。)如果你试图存储更多的 数据,则将发生错误。

声明了一个数组之后,你可以用一个索引为它的元素分配数值。在上面的例子中,索引值为1的数组元素被分配了值“Book on Active Sever Pages”。如果你想输出这个元素的值,你可以用这样的语句:

<%=Product(1) %>

上例中数组的作用与一个列表相似。它有一个索引,可以用来引用所有的元素。你也可以创建有多个索引的数组。考虑如下的例子:

<%

DIM Product(10,1)

Product(0,0)=”Trading Card”

Product(0,1)=”A very valuable trading card.”

Product(1,0)=”Book on Active Sever Pages”

Product(1,1)=”A comprehensive book on Active Sever Pages”

Product(2,0)=”computer Monitor”

Product(2,1)=”This monitor is in excellent shape.”

%>

这个脚本中DIM语句创建了一个多维数组。这个数组的作用与一个表相似;第一个索引指定行,第二个索引指定列。

这个数组保存了产品名字和产品描述。要指向一个特定的产品,你应使用第一个索引,要指定产品名字或产品描述,应使用第二个索引。

使用数组时,并不只限于使用二维数组。你可以声明直到60维的数组。要创建一个多维数组,只要简单地在数组声明语句中增加一个维数即可。象这样:

DIM Product(10,10,10,10)

这个声明创建了一个四维数组,每一维可以存储11个元素。这意味着这个数组共可以保存14,641个数值(11*11*11*11=14.641)。可以看到,随着维数的增加,数组的大小增加得很快。

目前讨论过的只限于固定大小的数组。一旦你声明了一个固定大小的数组,你将不能改变数组中的元素个数。要改变一个固定数组的大小,你必须删除它再重新创建。然而,VBScript另外有一种动态数组。这里有一个例子:

<%

DIM Product()

REDIM Product(2)

Product(0)=”Trading Card”

Product(1)=”Book on Active Sever Pages”

Product(2)=”Computer Monitor”

REDIM PRESERVE Product(3)

Product(3)=”Coffee Cup”

%>

在这个例子中,DIM语句把数组Product声明为动态数组。当你声明一个动态数组时,你不需要指定数组的维数。在你第一次给一个动态数组分配数值之前,你必须用REDIM语句指定它的维数。

这个例子中,数组Product首先被创建为只能有三个元素。接下来,再次使用REDIM语句,增大了这个数组的大小。该数组被重定义维数以包含四个元素。这使你可以把值“Coffee Cup”保存在重定义的数组中。

注意第二个REDIM语句中关键字PRESERVE的使用。当一个数组被重设维数时,这个关键字保存该数组中的内容。如果你不使用这个关键字,数组中的所有数据都会丢失。

你可以用REDIM语句增加维数,也可以减少维数。你还可以用REDIM语句增大或减小一个特定维的大小。但是,当你删除某一维或减小某一维的大小时,你将会丢失数据。

例如,假设你在上一个例子中把REDIM PRESERVE Product(2)作为最后一个语句,在这种情况下,你将不能再使用Product(3)。数据“Coffe Cup”将会从数组Product中丢失。

用关键字PRESERVE,你只能修改一个多维数组的最后一维。你可以增大最后一维,不丢失数据,或减小最后一维,丢失一部分数据。但是,当你增加或减少维数时,你无法保存数组中的数据。

用REDIM语句,你可以扩展或减缩一个数组任意多次。当你从数据库中取出数据时,你将会发现这个特性是很有用的。在本书的第五部分,“数据组件”中,你将学习这方面的内容。

原文转自:http://www.ltesting.net