问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

VB下怎样定义一个可变长的字符串数组?

发布网友 发布时间:2022-05-26 23:03

我来回答

2个回答

热心网友 时间:2023-09-21 15:07

数组到底应该有多大才合适,有时可能不得而知。所以希望能够在运行时具有改变数组大小的能力。动态数组就可以在任何时候改变大小。在 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然后,在过程中给数组分配空间: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)而不可这样编程:

热心网友 时间:2023-09-21 15:08

在VB中,可以用4个语句来定义数组。4个语句格式相同,但适应范围不一样。
Dim 用在窗体模块或标准模块中,定义窗体或标准模块数组,也可在过程中用。
ReDim用在过程中。
Static 用在过程中。
Public 用在标准模块中,定义全局数组。
格式:Dim(数组名)(下标)[As类型]
Dim(数组名)([下界To]上界)[,[下界To]上界卜。[As类型]
功能:定义一个数组各维的大小,并分配相应的存储空间。
说明:
(1)格式中的数组名与简单变量的命名规则相同。
(2)下标是数组的维数,可以用来定义*数组,在一般情况下,若缺省[上界],则数组元素下标的下界为0;当使用[下界T0上界…]时,下标的范围可以为一32 768~32767.
一维数组的大小为:(上界一下界+1)。
下界都必须小于上界。如果希望下标从l开始,可以通过Option Base语句来实现。
格式:Option:Base N
功能:指定数组下标的缺省下界为1.
说明:如果不使用该语句,程序默认数组的下标下界为0.Option Base语句在程序中只能使用一次;使用时必须把它放在数组定义之前才起作用。
(3)[As数据类型]项,用来说明数组的类型,类型可以是:
整型 Integei. 双精度Double_
长整Long 字符串_~String
单精度 Single 用户定义型
(4)DIM语句中的下标可以是常数,变量或表达式。下标全为常数称为静态数组,即数组大小在编译时是确定的。下标中有变量则称为动态数组,数组的大小是可变的,只有在程序运行时,变量有确定的值后,数组的大小才确定。
(5)数组必须先定义,后使用。
(6)当用Dim语句定义数组时,该语句把数值数组中的全部数组元素都初始化为0,而把字符串数组中的全部元素都初始化为空字符串。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
会计中级什么时候拿证 会计中级职称什么时候领取 手机中毒后恢复出厂设置就可以了吗? 手机中病毒后如何清除? 做代购初期怎么找客源,微商代购怎么找精准客 ...代购,都是阿迪耐克正品。怎么才能把微商做好。 做微商和代购,有哪些引流获客的方法? 250㎜的水泥撑棍一捆多少根? 吊顶一平要多少丝杠 ...断开电源,一端接地,这个时候把极板远离,为什么是两极板电压变大而... 批判现实主义的第一部文学宣言是什么 vb里面string数据变长类型怎么定义? 法国最早具有现实主义因素的作家,你知道是哪个人吗? 司汤达的主要作品有什么? 〈红与黑〉的作者是?,突然忘了 《红与黑》为什么是法国批判现实主义第一部成熟的作品?(五) 法国批判现实主义文学奠基人指的是谁? 跪求这个版本的坦克大战!也是很久以前的! 法国现实主义文学在19世纪30和40年代是黄金时代 ,有三个代表是谁。 坦克大战要有手枪和轮船的版本 最新消息,要出3DS版90坦克大战了,大家买吗 如何将openoffice与his系统连接 求FC坦克大战的一种版本 求90坦克大战nes所有版本,有消草的,过河的,敌人也能吃东西等等的所有版本 坦克大战里面敌人的坦克也能吃东西的版本下在 斗转星移和翻天覆地的近义词是什么?? FC坦克大战的版本问题…… 物换星移的同义词 关于新年的日记10篇日记都连着 求助坦克大战各版本~ 天津买房有什么限制? 军训有感并列式800字议论文 天津买房有资格限制吗?有什么解决方案没 复杂网络智能用于研究节点数量较少的问题吗 王琦的学术研究 求一篇论文--物理学与科学技术 2000字 现代教育技术与学校教育文化变革之间有何关系 暗夜游侠什么时候返场 步摇的制作过程 APP开发之怎样挖掘用户需求 喝酒为什么想吐,我喝一小杯就想吐有的时候喝一口就要吐出来了。以前不这样 以前喝酒很好的,现在喝一点就想吐,怎么回事 属鼠的人性格和优缺点属鼠的人性格详解 为什么一喝酒就想吐、头疼,怎么练酒量? 喝酒恶心是怎么回事,喝酒恶心想吐原因何在,喝酒为什 为什么喝了白酒以后感觉恶心? 退还定金的条件 为什么现在喝酒抽烟都有想吐的感觉,以前都不会这样, 十二生肖鼠的特点生肖鼠的性格特点 为什我一喝酒就想吐?