手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>VB>列表

Visual Basic变量、常数和数据类型及过程概述四

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

    注意 在增加数组的维数时,数组所占的存储空间会大幅度增加,所以要慎用多维数组。使用 Variant 数组时更要格外小心,因为它们需要更大的存储空间。

    用循环操作数组
    可以用 For 循环嵌套有效的处理多维数组。例如,在 MatrixA 中基于每个元素在数组中的位置为其赋值:
    Dim I As Integer, J As Integer
    Static MatrixA(1 To 10, 1 To 10) As Double
    For I = 1 To 10
       For J = 1 To 10
         MatrixA (I, J) = I * 10 J
       Next J
    Next I
    详细信息 关于循环的详细信息,请参阅本章后面的“循环结构”部分。

    动态数组
    数组到底应该有多大才合适,有时可能不得而知。所以希望能够在运行时具有改变数组大小的能力。
    动态数组就可以在任何时候改变大小。在 Visual Basic 中,动态数组最灵活、最方便,有助于有效管理内存。例如,可短时间使用一个大数组,然后,在不使用这个数组时,将内存空间释放给系统。
    如果不用动态数组,就要声明一个数组,它的大小尽可能达到最大,然后再抹去那些不必要的元素。但是,如果过度使用这种方法,会导致内存的操作环境变慢。
    要创建动态数组,请按照以下步骤执行:
    1. (如果希望数组为公用数组,则)用 Public 语句声明数组,或者(如果希望数组为模块级,则)在模块级用 Dim 语句声明数组,或者(如果希望数组为局部数组,则)在过程中用 Static 或 Dim 语句声明数组。给数组附以一个空维数表,这样就将数组声明为动态数组。
     Dim DynArray ()
    2. 用 ReDim 语句分配实际的元素个数。
     ReDim DynArray (X 1)
    ReDim 语句只能出现在过程中。与 Dim 语句、Static 语句不同,ReDim 语句是一个可执行语句,由于这一语句,应用程序在运行时执行一个操作。ReDim 语句支持这样的语法,它与固定数组中使用的语法相同。对于每一维数,每个 ReDim 语句都能改变元素数目以及上下界。但是,数组的维数不能改变。
    ReDim DynArray (4 to 12)
    例如,用第一次声明在模块级所建立的动态数组 Matrix1:
    Dim Matrix1 () As Integer
    然后,在过程中给数组分配空间:
    Sub CalcValuesNow ()
    .
    .
    .
        ReDim Matrix1 (19, 29)
    End Sub
    这里的 ReDim 语句给 Matrix 分配一个 20 × 30 的整数矩阵(元素总大小为 600)。还有一个办法,用变量设置动态数组的边界:
    ReDim Matrix1 (X, Y)
    注意 您可以将字符串赋值给大小可变的字节数组。一个字节数组也可以被赋值给一个可变长的字符串。一定要注意字符串中的字节数会随平台而变化。同一个字符串在 Unicode 平台上的字节数是它在非Unicode 平台上的两倍。

    保留动态数组的内容
    每次执行 ReDim 语句时,当前存储在数组中的值都会全部丢失。VisualBasic 重新将数组元素的值置为 Empty(对 Variant 数组)、置为 0(对Numeric 数组)、置为零长度字符串(对 String 数组)或者置为 Nothing(对于对象的数组)。
    在为新数据准备数组,或者要缩减数组大小以节省内存时,这样做是非常有用的。有时希望改变数组大小又不丢失数组中的数据。使用具有 Preserve关键字的 ReDim 语句就可做到这点。例如,使用 UBound 函数引用上界,使数组扩大、增加一个元素,而现有元素的值并未丢失:
    ReDim Preserve DynArray (UBound (DynArray) 1)
在用 Preserve 关键字时,只能改变多维数组中最后一维的上界;如果改变了其它维或最后一维的下界,那么运行时就会出错。所以可这样编程:
    ReDim Preserve Matrix (10, UBound (Matrix, 2) 1)
而不可这样编程:
    ReDim Preserve Matrix (UBound (Matrix, 1) 1, 10)
    详细信息 关于动态数组的更详细信息,请参阅语言参考中的“ReDim 函数”。关于对象数组,请参阅第九章“用对象编程”。

上一篇: Visual Basic控件结构概述
下一篇: Visual Basic对象使用

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!