关于动态数组及上下标的问题,新人求教
我要用一个数组来储存一个文本每一行的内容。主要代码如下:
Dim arr() As string
Dim objFSO
Dim i
Set objFSO = CreateObject( "Scripting.FileSystemObject ")
Set strobjFSO = objFSO.OpenTextFile( "C:\111 ", 2, True)
strobjFSO.Write (strMailBody)
strobjFSO.Close
Set strobjFSO = objFSO.OpenTextFile( "C:\111 ", 1, True)
i = 0
Do While Not strobjFSO.AtEndOfStream
strNote = strobjFSO.readline
strNoteTextLine(i) = strNote
i = i + 1
Loop
运行后报错:subcript out of range.
如果我写定义的时候这样写 Dim arr(0 to 100) 就没有问题。
请问大虾,是不是一定要定死数组的上下标才可以?如果不知道文本有多少行,想要用Loop动态写入数组可以吗?
谢谢
[解决办法]
给的代码与你问的问题......,艾
你的arr在你给的代码中之出现一次, 现在人问问题的水平....
[解决办法]
Do While Not strobjFSO.AtEndOfStream
If i = 0 Then
Redim arr(0)
Else
Redim Preserve arr(i) ' 加了 Preserve 表示改变数组大小时不会丢失数据
End If
strNote = strobjFSO.readline
strNoteTextLine(i) = strNote
i = i + 1
Loop
[解决办法]
对于动态数组的初始化,用REDIM 语句