VB中数组定义和引用问题

“zb” & I & “.txt” 是几个TXT文档 里面的数值都是列排列的 ,下面的input #i 就可以把文档里的数读到数组里面,这个已经验证过了 每个文档是num行

Private Sub fuzhi()
Dim f_Array() As Double
Dim num As Integer
d=3
For i = 1 To d
num = 0
Open "c:\zb" & i & ".txt" For Input As #i
Do While Not EOF(i)
num = num + 1
endnum = num ‘endnum记录num的最大值
ReDim Preserve f_Array(1 To d, 1 To num) ‘我怀疑的就这句
Input #i, f_Array(i, num) ‘将文档中的数赋值到数组里的每个元素
Debug.print f_array(I,num) ;”i=”;I;”num=”;num ‘此处验证一切正常,f_array()全都有值,循环结束在调用就出问题了
Loop
Close #i
Next i
Open "c:\2222.text" For Append As #8 ‘出了循环我再调用就出问题了
For i = 1 To d
For num = 1 To endnum
Print #8, f_Array(i, num) * 180 / pi; "i="; i; "num="; num
Next num
Next i
Close #8
结果是 i=1,2 时 所有的 f_array()全都为0
只有i=3时 f_array()有值 所以我怀疑 redim 那里把 前两个i的数都清0了
能飞出解决方法的再追加50分
-------------------------------------

d 是固定值,d=3, 1 to 3 ,没改变啊。

Preserve 可选的。关键字,当改变原有数组最末维的大小时,使用此关键字可以保持数组中原来的数据。
这是msdn的说明,你不只改变了最末维的大小,所以数组清0了
温馨提示:答案为网友推荐,仅供参考
相似回答