CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

在VB中如何动态地添加,删除数组?

楼主abiaozsh(abiao-s.h.zheng)2003-12-03 17:47:28 在 VB / 基础类 提问

在VB中如何动态地添加,删除数组? 问题点数:20、回复次数:6Top

1 楼xayzmb(行者)回复于 2003-12-03 17:53:25 得分 0

redim  
  EraseTop

2 楼longki(农民写代码)回复于 2003-12-03 18:12:22 得分 0

 
      在MSDN中看一下楼上所说的,里面都有Example!Top

3 楼FSoft()回复于 2003-12-03 19:01:33 得分 0

在Redim   语句中加入Preserve关键字可以动态增减数组最后一维的维数Top

4 楼5653325(等待开刃的刀)回复于 2003-12-03 19:12:06 得分 20

动态数组  
   
   
  数组到底应该有多大才合适,有时可能不得而知。所以希望能够在运行时具有改变数组大小的能力。  
   
  动态数组就可以在任何时候改变大小。在   Visual   Basic   中,动态数组最灵活、最方便,有助于有效管理内存。例如,可短时间使用一个大数组,然后,在不使用这个数组时,将内存空间释放给系统。  
   
  如果不用动态数组,就要声明一个数组,它的大小尽可能达到最大,然后再抹去那些不必要的元素。但是,如果过度使用这种方法,会导致内存的操作环境变慢。  
   
  要创建动态数组,请按照以下步骤执行:    
   
  (如果希望数组为公用数组,则)用   Public   语句声明数组,或者,(如果希望数组为模块级,则)在模块级用   Dim   语句声明数组,或者(如果希望数组为局部数组,则)在过程中用   Static   或   Dim   语句声明数组。给数组附以一个空维数表,这样就将数组声明为动态数组。    
  Dim   DynArray   ()  
   
  用   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   语句时,当前存储在数组中的值都会全部丢失。Visual   Basi   重新将数组元素的值置为   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   函数”。关于对象数组,请参阅“用对象编程”。  
   
   
   
   
   
   
   
   
   
  Erase   语句  
   
               
   
  重新初始化大小固定的数组的元素,以及释放动态数组的存储空间。  
   
  语法  
   
  Erase   arraylist  
   
  所需的   arraylist   参数是一个或多个用逗号隔开的需要清除的数组变量。  
   
  说明  
   
  Erase   根据是固定大小(常规的)数组还是动态数组,来采取完全不同的行为。Erase   无需为固定大小的数组恢复内存。Erase   按下表来设置固定数组的元素:  
   
  数组类型   Erase   对固定数组元素的影响    
  固定数值数组   将每个元素设为   0。    
  固定字符串数组(长度可变)   将每个元素设为零长度字符串   ("")。    
  固定字符串数组(长度固定)   将每个元素设为   0。    
  固定   Variant   数组   将每个元素设为   Empty。    
  用户定义类型的数组   将每个元素作为单独的变量来设置。    
  对象数组   将每个元素设为特定值   Nothing。    
   
   
  Erase   释放动态数组所使用的内存。在下次引用该动态数组之前,程序必须使用   ReDim   语句来重新定义该数组变量的维数。  
  Top

5 楼abiaozsh(abiao-s.h.zheng)回复于 2003-12-03 20:48:01 得分 0

我不是要动态数组,而是动态地添加/删除"整个"数组.  
  Top

6 楼northwolves(狼行天下)回复于 2003-12-03 22:23:43 得分 0

做什么用?Top

相关问题

  • 急!关于数组的添加和删除
  • 怎样声明一个长度可变的string数组,并向数组中添加和删除值
  • delete删除数组问题??
  • 删除控件数组
  • vb数组
  • 请问如何能动态向一个数组中添加数据,删除数据。谢谢!
  • VB数组定义??
  • vb数组问题
  • JavaScript中数组的删除问题。
  • 如何删除数组成员

关键词

  • 语句
  • 内存
  • 语法
  • 模块
  • 数组
  • redim
  • 动态
  • 元素
  • 字符串
  • 维数

得分解答快速导航

  • 帖主:abiaozsh
  • 5653325

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo