当前位置:编程学习 > VB >>

给数组多次赋值时,怎样使得原来所赋的值不被覆盖掉,高手请求教!

定义有下面一个数组,给数组多次赋值时,怎样使得原来所赋的值不被覆盖掉。
Dim xshu() As Integer

Open "E:\数据库1.txt" For Input As #1
     xshu1 = xsh() '''''''''''''''调用函数
Open "E:\数据库2.txt" For Input As #1
     xshu1 = xsh() '''''''''''''''调用函数
Open "E:\数据库2.txt" For Input As #1
     xshu1 = xsh() '''''''''''''''调用函数

说明把调用函数返回的数组xsh()的值 赋值给xshu1 数组,结果后面的把前面的覆盖了。怎样使得前面所赋的值不被后面的覆盖掉啊!请高手求教.
--------------------编程问答-------------------- "前面所赋的值不被后面的覆盖掉",那前面所赋的值要保存到哪里去呢? --------------------编程问答-------------------- 假如前面有100个数存到数组xshu1(1)到 xshu1(100 )中了,后面的所赋的值就从  xshu1 (101)开始储存下去,这样可以吗? --------------------编程问答-------------------- 用redim扩展数组。 --------------------编程问答--------------------
引用 2 楼 jiannanyanyu_26 的回复:
假如前面有100个数存到数组xshu1(1)到 xshu1(100 )中了,后面的所赋的值就从  xshu1 (101)开始储存下去,这样可以吗?


当然可以。而且一般的设计方法是,你先估一下xshu1最终实际需要的容量,一开始就留够空间,比如redim xshu1(1000) --------------------编程问答-------------------- 使用带Preserve关键字的Redim语句。

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

下面的语句重定义该数组的大小,但没有清除其中的元素。
Redim Preserve MyArray(15)   '大小重定为 15 个元素。 --------------------编程问答-------------------- 谢谢,你们的帮助,我终于解决了! --------------------编程问答--------------------
引用 5 楼 songyaowu 的回复:
使用带Preserve关键字的Redim语句。

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

下面的语句重定义该数组的大小,但没有清除其中的元素。
Redim Preserve MyArray(15)   '大小重定为 15 个元素。

正解!
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,