Visual Basic 程序设计教程第6章
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
其格式为: Erase数组名[, 数组名]„„ Erase语句用来重新初化静态数组的各 元素,或释放动态数组的存储空间。注意: 在Erase语句中,只给出需要刷新的数组名, 不带括号和下标。例如:Erase a。
【说明】 (1)当把Erase语句用于静态数组时, 如果这个数组是数值型数组,则把数组中 各元素置为0;如果是字符串数组,则把所 有各元素置为空字符串;如果是记录数组, 则根据每个元素(包括定长字符串)的类 型重新进行设置。设置如表6.2所示:
4.数组的操作
(1).数组元素的输入和输出
数组元素一般通过过循环语句、文本 框控件、InputBox( )函数配合进行输入和 输出。
(2).数组的清除和重新定义
静态数组一经定义,编译时便在内存 中分配了相应的存储空间,从建立数组到 程序运行结束,它的大小和维数是不能改 变的;而动态数组是在程序的执行过程序 中用ReDim语句根据用户的需要重新分配存 储空间的。可能需要清除数组的内容或对 数组重新定义,这时可以用Erase语句来实 现。
(3).数组元素的引用
若要将数组的各个元素的值赋给另一 个数组,在VB 6.0以前的版本中,需要通 过for„next循环来实现。在VB 6.0中只要 通过一句简单的赋值语句即可实现。
在数组对数组赋值时要注意:
①赋值号“=”两边的数据类型必须 一致; ②如果赋值号左边是一个动态数组, 则赋值时系统自动将动态数组ReDim 成与右边同样大小的数组; ③如果赋值号“=”左边是一个大小 固定的数组,则数组赋值出错。
(2)当把Erase语句作用于动态数组时, 将删除整个数组结构并释放该数组所占用 的内存空间。也就是说,动态数组经Erase 后即不复存在,而静态数组经Erase后仍然 存在,只是其内容被清空。
(3)当把Erase语句用于变体类型时, 每个元素将被置为“空”(Empty)。 (4)Erase语句释放动态数组所使用的 内存,在下次引用动态数组之前,必须用 ReDim语句重新定义该数组变量的维数及 大小。
动态数组是在定义数组时未给出数组 的大小(省略括号中的下标),在程序运 行时,根据需要随时用ReDim语句重新声明 数组的大小。使用动态数组的优点是可根 据用户的需要,有效地利用存储空间。它 是在程序执行到ReDim语句时分配存储空间 的,而静态数组是在程序编译时分配存储 空间的。
ReDim [As 类型]
5.控 件 数 组
控件数组是指数组元素的类型是我们 前面所介绍的控件,它们共用一个控件名, 具有相同的属性,共享同样的事件过程。 当建立控件数组时,系统给每个元素赋予 唯一的索引号(Index),通过属性窗口的 Index属性,可以知道该控件的索引值是多 少。
控件数组适用于若干个控件执行操作 相似的场合。例如,控件数组Cmd有4个命 令按钮,则不管单击哪个命令按钮,都会 响应命令பைடு நூலகம்钮的单击事件过程。
第6章 数 组
1
数组的基本概念
一.数组的基本概念
数组是Visual Basic提供的一种数据 结构,它是同一类型的数据的集合(除了 记录类型数组外),数组在内存中占一组 连续的存储空间。数组中每一个元素具有 唯一的索引号,即元素的下标,用“数组 名(下标)”来标识数组中的某一个元素。 数组必须先定义然后才能使用。
(2)下标的形式:
下标的形式有两种,第一种是直接给 出一个常数,另一种是给出一个范围:[下 界 to 上界],下界最小可为−32 768,上 界最大为32 767,若省略下界,则其默认 值为0。一维数组元素的个数为:上界−下 界+1。
(3)As类型:
说明数组的类型,省略该参数默认为 是变体类型。 Dim语句定义的数组,实际上为系统编 译程序提供了几种信息:数组名、数组类 型、数组的维数和各维的大小,使系统分 配所需要的连续存储单元。例如: Dim a(10) As integer Dim Str (−5 to 5) as String*3
在数组声明中,下标关系到每一维的 大小,与数组名结合在一起,说明了数组 的整体。而在程序中出现的下标用于指明 数组元素,与数组名结合起来表示数组中 的一个元素。两者写法相同,但意义不同。 在数组声明时下标只能是常数,而在程序 中其他地方出现的数组元素的下标可以是 变量,读者要加以区分。
3.动态数组
首先声明了数组a是一维整型数组,有 11个元素,下标的范围为0~10。若在程序 中引用a(11),则系统会提示“下标越界” 的错误。 接着声明了数组Str是一维字符串类型 数组,有11个元素。下标的范围为−5~5, 每个元素最多存放3个字符。
2.多维数组
如果一个数组有两个以上的下标,则 该数组称为二维数组或多维数组。 Dim 数组名(下标1, 下标2, „)[As 类型]
1.静态数组
在定义时确定了大小的数组称为静态 数组。静态数组从建立到程序运行结束, 数组的维数和大小是不能改变的,它在内 存中使用一组连续的存储单元。
一维数组:
如果数组只有一个下标,那么这个 数组称为一维数组。声明一维数组的形 式如下: Dim 数组名(下标) [as 类型]
(1)下标:
下标必须为常数,不能是变量或表达 式。
表6.2
Erase语句对静态数组的影响
数 组 类 型 数值数组
Erase语句对数组元素的影响 将每个元素设为0
字符串数组(变长)
字符串数组(定长) Variant数组 用户定义类型的数组 对象数组
将每个元素设为0长度字符串(“”)
将每个元素设为定长的空字符串 将每个元素设为Empty 将每个元素作为单独的变量来设置 将每个元素设为Nothing
数组名(下标1, 下标2, „)
(1)在静态数组声明中的下标只能 是常量,在动态数组ReDim语句中的 下标可以是常量,也可以是有了确 定值的变量。
(2)在过程中可以多次使用ReDim 语句来改变数组的大小,也可以改 变数组的维数,但不能改变数组元 素的类型。
(3)每次使用ReDim语句都会使原 来数组中的各元素的值丢失,可以 在ReDim语句中使用Preserve参数用 来保留数组中原有的数据。但使用 Preserve参数后,ReDim只能改变数 组最后一维的大小。