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

着急着急数组有关问题

2012-01-26 
着急着急!数组问题PrivateSubCommand2_Click()DimstrNumAsStringDimstr()AsString单个序号与状态Dimcount(

着急着急!数组问题
Private   Sub   Command2_Click()
        Dim   strNum   As   String
        Dim   str()   As   String           '单个序号与状态
        Dim   count()   As   String         '序号
        Dim   sign()   As   String         '状态
        Dim   i   As   Integer
        i   =   0
        Set   fil   =   fso.OpenTextFile(filePath,   ForReading,   True)           '读FSO
        Do   While   Not   fil.AtEndOfStream             '判断是否到达文件尾部
              strNum   =   fil.ReadLine
              If   (strNum   <>   " ")   Then
                        str   =   Split(strNum,   ", ")
                        count(i)   =   str(0)????????
                        sign(i)   =   str(1)?????????
                        i   =   i   +   1
              End   If
        Loop
        fil.Close
        strNum   =   interDateDouble(count,   sign)
End   Sub

代码如上,?号那里     为何我i为0时候就要提示下标越界?必须定义数组长度吗?


或者我定义数组长度1000,我填写数据只有3个元素,我用身摸方法或者函数能得到3
用UBOUND只能得到1000

[解决办法]
你确信 str = Split(strNum, ", ") 其中strnum就肯定会有逗号吗?
如果没有的话不是肯定要越界啦
[解决办法]
或者我定义数组长度1000,我填写数据只有3个元素,我用身摸方法或者函数能得到3
用UBOUND只能得到1000
~~~~~
如果不确定数组大小的话可以用preserve 来动态定义数组

[解决办法]
你确信 str = Split(strNum, ", ") 其中strnum就肯定会有逗号吗?
如果没有的话不是肯定要越界啦

你可以定义动态数组,然后用redim preserve的方法不断改变数组大小
[解决办法]
If (strNum <> " ") Then
str = Split(strNum, ", ")
redim preserve count(0 to i) as string '加上这句
redim preserve sign(0 to i) as string '还有这句
count(i) = str(0)????????
sign(i) = str(1)?????????
i = i + 1
End If

热点排行