如何动态分配数组长度?

来源:百度知道 编辑:UC知道 时间:2024/05/17 02:20:12
在ASP中,我需要将表中的数据读到数组中,表中的记录数不确定,我如何动态定义数组的长度?我试着用dim arr(rs.recordcount,2)来定义,但系统提示必须用常数来定义,请各位大侠帮帮我.

表结构 hp
hp_id hp_title
1 诺基亚
2 三星
... ...
按一楼朋友的方法试了,不行啊!错误提示如下:
Microsoft VBScript 运行时错误 '800a000a'

该数组为定长的或临时被锁定

ReDim 语句示例
该示例使用 ReDim 语句为动态数组变量分配和重分配存储空间。假设 Option Base 是 1。

Dim MyArray() As Integer '声明动态数组。
Redim MyArray(5) '分配 5 个元素。
For I = 1 To 5 '循环 5 次。
MyArray(I) = I '初始化数组。
Next I

下一条语句重定义该数组的大小,并清除其中的元素。

Redim MyArray(10) '大小重定为 10 个元素。
For I = 1 To 10 '循环 10 次。
MyArray(I) = I '初始化数组。
Next I

下面的语句重定义该数组的大小,但没有清除其中的元素。

Redim Preserve MyArray(15) '大小重定为 15 个元素。

(更详细的信息请见下面:)
动态数组

数组到底应该有多大才合适,有时可能不得而知。所以希望能够在运行时具有改变数组大小的能力。

动态数组就可以在任何时候改变大小。在 Visual Basic 中,动态数组最灵活、最方便,有助于有效管理内存。例如,可短时间使用一个大数组,然后,在不使用这个数组时,将内存空间释放给系统。

如果不用动态数组,就要声明一个数组,它的大小尽可能达到最大,然后再抹去那些不必要的元素。但是,如果过度使用这种方法,会导致内存的操作环境变慢。

要创建动态数组,请按照以下步骤执行:

(如果希望数组为公用数组,则)用 Public 语句声明数组,或者,(如果希望数组为模块级,则)在模块级用 Dim 语句声明数组,或者(如果希望数组为局部数组,则)在过程中用 Static 或 Dim 语句声明数组。给数组附以一个空维数表,这样就将数组声明为动态数组。
Dim DynArray ()
<