首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

关于动态数组及上下标的有关问题,新人求教

2012-03-17 
关于动态数组及上下标的问题,新人求教我要用一个数组来储存一个文本每一行的内容。主要代码如下:Dimarr()As

关于动态数组及上下标的问题,新人求教
我要用一个数组来储存一个文本每一行的内容。主要代码如下:

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 语句

热点排行
Bad Request.