asp定义数组方法的技巧是什么,asp定义数组方法的技巧有哪些,ASP定义数组方法的技巧

asp定义数组方法的技巧是什么,asp定义数组方法的技巧有哪些,ASP定义数组方法的技巧

文中提到的数组是VisualBasic中数组的定义,对asp编程有一定的参考价值。文中的样例代码非常详细,感兴趣的朋友可以参考一下。

数组是有序数据的集合。数组中的元素可能不属于同一数据类型。统一的数组名称和下标用于唯一标识数组中的元素。更改一个元素不会影响其他元素。数组的下标是有界的,分为下界和上界。数组可以由Dim、Private、Public或Static声明,它们的语法格式是相同的。下面只介绍用Dim声明数组的方法。

1数组的定义与声明

数组的定义语法如下:

Dim数组名称([[下标下限到]下标上限])[作为数据类型]

例如(假设当前模块中数组的默认下限为0)):

Dim A(10) As Integer

数组名是a,这个数组的下标下限是0,下标上限是10。有11个整数类型的元素,从A(0),A(1)到A(10)。

Dim B(1 To 20) As Integer

数组名是b,这个数组的下标下限是1,下标上限是20。有20个整数类型的元素,从B(1)到B(20)。

Dim DayArray(50)

指示DayArray是具有51个索引元素(从0到50)的变量数组。

Dim Matrix(3, 4) As Integer

指示Matrix是一个二维整数数组。

Dim MyMatrix(1 To 5, 4 To 9, 3 To 5) As Double

指示MyMatrix是一个三维双精度数组,具有显式指定的上限和下限。

Dim BirthDay(1 To 10) As Date

生日是一个索引从1到10的日期数组。

2Option Base 语句

Option语句在模块级用于声明数组下标的默认下限。

option语句的语法如下:

选项库{0 | 1}

注意:默认情况下,数组的下限是0,所以不需要使用Option Base语句。如果此语句用于指定数组下限为1,则必须在模块的数组声明之前使用Option Base语句。

注意:

(1)dim、Private、Public、ReDim和Static语句中的To子句提供了一种更灵活的方法来控制数组的下标。但是,如果没有用To子句显式指定下限,可以使用Option Base将默认下限设置为1。由Array函数创建的数组的下限也由Option Base语句指定的下限确定,除非数组由类型库的名称限定(如VBA。Array),如果是这样,数组函数创建的数组的下界不受Option Base的影响。

(2) Option Base语句只影响位于包含该语句的模块中的数组的下限。

关于数组声明的几点说明:

数组名的命名规则与变量名的命名规则相同。

数组名是用圆括号括起来的,不是方括号,和C语言不同。

下标的下限不得大于其上限。

变量名或常量名(和实数)可以作为下标的边界。当光标的边界是常量名时,数组的大小是固定的;当光标的边界是变量名时,数组的大小可以动态定义,即数组的大小取决于程序运行过程中变量的值。所以VB中的数组可以分为静态数组和动态数组两种。

3静态数组

静态数组是一个指数群。元素的数量是固定的,也就是说,它们占用的内存空间是固定的。根据固定大小数组维数的不同,可以分为一维数组和多维数组。

声明多维数组的语法格式为:

Dim数组名称([下标边界列表])[作为数据类型]

下标边界的定义形式:[下标下界到]下标上界

下标边界列表是指由逗号分隔的数组的每个维度的下标边界,即

[下标下限至]下标上限,[下标下限至]下标上限,[下标下限至]下标上限

(第一维)(第二维)(第n维)

当n=1时,该数组称为一维数组;当n=2时,该数组称为二维数组;同理,当n=m时,该数组称为m维数组。

这里有一个使用一维数组的例子。

声明一个长度为51的字符串数组,FriendsName

Dim FriendsName(50)作为字符串

声明一个长度为11的全局整数数组类

作为整数的公共类(10)

一维数组中的元素个数为(上限-下限1)。

您可以使用循环语句将初始值赋给数组,例如:

将I标注为整数

使用For I=0到11 '循环语句和控制程序流程

C(I)=I

接下来我

如果未显式指定下标下限,则数组的下标下限由Option Base语句控制。如果没有Option Base语句,则下限默认为0。

数组的维数不限于2。在VB中,可以扩展到60。实际上,三维以上的阵列很少应用。定义多维数组时,只需要一个Dim语句来指定数组的所有下标边界。使用多维数组可以很容易地表示一些有意义的统计数据。例如:

作为货币的模糊利润(16,10,12)

这个利润数组可以用商店名称、部门和月份作为参数来表示百货商店的利润。例如,Profit(2,8,11)表示第二个分支的第八个部门在11月的利润。

4动态数组

有时候,在使用数组之前,无法知道数组有多大才能满足实际需要。当然,数组的大小可以定义为足够大,以满足任何实际应用的需要。这种方法效率很低(浪费大量内存空间)。如果使用动态数组,可以在程序运行时根据实际需要精确定义数组的大小。

声明数组时,数组被声明为动态数组,而没有给出维度列表。例如:

Dim MyArry()为整数

在使用动态数组之前,必须使用ReDim语句重新定义它。例如,前面声明的数组MyArry可以用下面的语句定义为一个动态二维数组。

雷迪姆米亚里(10,10)

还可以通过重复执行ReDim语句来多次定义动态数组。使用ReDim可以定义的最大维数是60。ReDim语句可以更改数组中每个维度的元素数量,但不能更改维度。下面是ReDim语句的一个标准应用示例。

“Dimmyarry () as single”声明了一个动态数组。

Redim Myarry (30,20,10)'重新定义阵列

Redim Myarry (50,23,21)'重新定义数组。

ReDim的语法与Dim的语法相同。此外,它还具有选项Preserve关键字:

重新改进数组名称([[下标下限到]下标上限])[作为数据类型]

例如:

雷迪姆米亚里(50,23,21)

ReDim Preserve MyArry(50,23,50)

010-5900使用ReDim时,重新定义数组会使所有数组元素的值消失,而使用Preserve可以保留数据。但是,使用Preserve只能在更改数组最后一个维度的大小时保留数组的数据。对于一维数组,会保留所有数据,而对于多维数组,只能改变最后一个维度的大小来保留所有数组数据,否则会出错。

注意:

LBound函数和Ubound函数都返回长整型数据,前者得到指定数组维数可用的最小下标,后者得到最大下标。他们的语法是:

LBound(数组名[,指定维度])

UBound(数组名[,指定维度])

阵列名称是必需的。的指定维度是可选的,指示返回指定维度的下限。1表示第一维度,2表示第二维度,依此类推。如果指定的维度被省略,默认情况下将为1。

5LBound 函数和UBound 函数

Dim A(1到100,3,-3到4) As Integer '定义了一个三维数组,假设Option Base语句不改变数组下限的默认值。

对数组a使用Lbound和ubound函数,返回值列表如下

所有维度的默认下限取决于Option Base语句的设置。可以看出,对一个数组使用LBound函数和UBound函数,可以用来确定一个数组中元素的个数。

对于那些维数由声明中的To子句设置的数组,它们可以使用任意整数作为下限,而不受Option Base语句的限制。

关于如何使用LBound 函数与 UBound 函数可参见下例:

尽管数组最常用于存储变量组,但它们在其他方面也很有用。您可以将一个数组的内容分配给另一个数组,创建一个返回数组的函数,并创建一个返回数组的属性。在许多情况下,这些技术可以提高应用程序的性能。

正如您可以将一个变量的值赋给另一个变量,例如StrA=StrB,您也可以将一个数组的内容赋给另一个数组。例如,将一个单字节数组从一个位置复制到另一个位置。它可以通过一次复制一个字节来实现。该计划如下:

子字节拷贝(oldCopy()作为字节,newCopy()作为字节)

参数oldCopy()是源数组,newCopy()是目标数组。

将I标注为整数

重定义新副本(lbound(旧副本)到ubound(旧副本))'重定义动态数组。

For I=lbound(旧副本)到ubound(旧副本)'循环赋值

newCopy(i)=oldCopy(i)

然后

末端接头

更有效和简单的方法是将一个数组直接分配给另一个数组:

子字节拷贝(oldCopy()作为字节,newCopy()作为字节)

参数oldCopy()是源数组,newCopy()是目标数组。

“NewCopy=oldCopy”使用数组直接赋值。

末端接头

关于变量赋值,有一些规则要记住。例如,虽然声明为整数的变量可以毫无问题地赋给声明为长整数的变量,但将长整数变量赋给整数变量很容易导致溢出错误。除了遵循关于在数据类型变量之间赋值的规则之外,数组赋值还应该遵循其他规则,包括数组维数、每个维数的大小以及数组是固定的还是动态的。

为不同维度和数据类型的数组赋值时要考虑的几个因素

1.赋值器左侧的数组类型:固定数组(Dim x(1到10)为整数)或动态数组(Dim x()为整数)。

2.求值器左侧数组的维数是否与求值器右侧数组的维数匹配。

3.赋值器两侧数组的每个维度中的数组元素个数是否匹配。即使数组的声明不同,维度也可能匹配。例如,数组的每个维度元素从0开始编号,另一个从1开始编号,维度也可以匹配。

4.求值器两端的所有元素的数据类型必须兼容。这些规则与变量赋值的规则是一致的。

分配数组时的错误可能发生在编译时或运行时(例如,如果数据类型不能强制转换或分配试图重新定义静态数组)。设计程序时,应该添加错误处理,以确保数组在赋值前是匹配的。

写一个返回数组的函数。

从一个函数返回一组值是可能的。例如,从函数中返回一组字节,而没有先将其转换为字符串,然后再转换回来。

下面是一个使用返回字节数组的函数的简单示例:

私有子窗体_Load()

将b调成字节

将I标注为整数

Dim ReturnArray()作为字节

b=Cbyte(54)

ReturnArray()=ArrayFunction(b)'调用函数

For i=Lbound(ReturnArray)至Ubound(ReturnArray)

MSOX RETURN ARRAY (i)'通过弹出消息框循环显示数组值。

然后

末端接头

公共函数ArrayFunction(b As Byte) As Byte()

Dim x(2)为字节

x(0)=b

x(1)=b千字节(200)

x(2)=b b

Array=x '返回一个数组x。

结束功能

运行上述示例后,ReturnArray()是一个三元素数组,包含ArrayFunction中分配给该数组的值。array语句将数组作为参数传递;并且数组的数据类型必须与函数的数据类型相同(本例中为字节)。因为这是一个函数调用,所以在传递数组时不必使用括号。

注意:

1.虽然可以通过将一个值赋给另一个数组(ArrayFunction=x())来返回一个数组,但出于性能原因,不建议使用这种方法。

2.您必须为返回数组的函数指定一个类型。这种类型可以是变体。这样,函数X()作为变量()有效,函数X()作为()将失败。

3.调用返回数组的函数时,用于保存返回值的变量也必须是数组,其数据类型必须与函数返回的类型相同,否则会显示“类型不匹配”错误。

以上是边肖分享的ASP定义数组的方法。感兴趣的朋友可以参考一下。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • session对象的默认有效期为几分钟,session一段时间,ASP中Session技巧 默认过期时间为20分钟
  • ASP编程,asp实例
  • ASP编程,asp实例,ASP常用源代码的总结(上)
  • asp是什么格式的文件,asp文件怎么打开-
  • asp是什么格式的文件,asp文件怎么打开-,asp是什么格式 asp文件用什么打开
  • ASP是什么协议,ASP定义
  • ASP是什么协议,ASP定义,ASP开发准则是什么
  • asp数组的使用介绍图片,asp数组的使用介绍怎么写
  • asp执行sql语句,asp+sql
  • asp将本地的文件上传到服务器,asp将本地的文件上传到服务器中
  • asp将本地的文件上传到服务器,asp将本地的文件上传到服务器中,asp将本地的文件上传到服务器
  • asp定义数组方法的技巧有哪些,asp定义数组方法的技巧是什么
  • asp一句话木马免杀,asp木马具有的功能是什么
  • asp一句话木马免杀,asp木马具有的功能是什么,asp一句话木马原理分析
  • asp 数组长度,asp数组的使用介绍怎么写,asp数组的使用介绍
  • 留言与评论(共有 条评论)
       
    验证码: