| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 11582 人关注过本帖
标题:vb 下标越界怎么解决?
只看楼主 加入收藏
ymhy12345
Rank: 2
等 级:论坛游民
帖 子:83
专家分:36
注 册:2011-8-27
结帖率:72.73%
收藏
 问题点数:0 回复次数:8 
vb 下标越界怎么解决?
用的是listbox控件,源码
程序代码:
Dim AssStations() As String
Private Sub Form_Load()
Dim Tmp1, Tmparray1

 ReDim AssStations(0) As String

 If Dir(App.Path & "\adult.dat") <> "" Then
    Open App.Path & "\adult.dat" For Input As #1
        aLista.Clear
        While Not EOF(1)
        Line Input #1, Tmp1
        If Trim(Tmp1) <> "" Then
            Tmparray1 = Split(Tmp1, "||>")
            ReDim Preserve AssStations(UBound(AssStations) + 1) As String
            If Tmparray1(0) <> "" Then
                AssStations(UBound(AssStations) - 1) = Trim(Tmparray1(1)) '下标越界,错误提示来自这一行。怎么解决
                aLista.AddItem Trim(Tmparray1(0))
            End If
        End If
    Wend
Close #1
End If


End Sub

图片附件: 游客没有浏览图片的权限,请 登录注册


[ 本帖最后由 ymhy12345 于 2012-12-27 13:50 编辑 ]
搜索更多相关主题的帖子: color 
2012-12-27 13:47
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4940
专家分:30047
注 册:2008-10-15
收藏
得分:0 
Dim AssStations() As String
Private Sub Form_Load()
Dim Tmp1, Tmparray1()
ReDim AssStations(0) As String
If Dir(App.Path & "\adult.dat") <> "" Then
 Open App.Path & "\adult.dat" For Input As #1
愀Lista.Clear
圀栀椀氀攀 Not EOF(1)
Line Input #1, Tmp1
If Trim(Tmp1) <> "" Then
吀洀瀀愀爀爀愀礀1 = Split(Tmp1, "||>")
刀攀Dim Preserve AssStations(UBound(AssStations) + 1) As String
'If Tmparray1(0) <> "" Then
            'If ubound(Tmparray1)> 0 and Tmparray1(0) <> ""  Then             '确保有二个元素,并且第一个元素不为空
            If ubound(Tmparray1)> 0 Then          '确保有二个元素
 AssStations(UBound(AssStations) - 1) = Trim(Tmparray1(1)) '下标越界,错误提示来自这一行。怎么解决
 aLista.AddItem Trim(Tmparray1(0))
End If
End If
 Wend
Close #1
End If
End Sub

-----------
当读到的数据不为空时,并且不带 "||>" 时,
会导致 Tmparray1 的最大下标只有 0 。

授人于鱼,不如授人于渔
早已停用QQ了
2012-12-27 14:08
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4940
专家分:30047
注 册:2008-10-15
收藏
得分:0 
复制一下,再编辑一下,就出乱码啦。自己慢慢看吧。只改了变色的地方。

授人于鱼,不如授人于渔
早已停用QQ了
2012-12-27 14:09
ymhy12345
Rank: 2
等 级:论坛游民
帖 子:83
专家分:36
注 册:2011-8-27
收藏
得分:0 
回复 3楼 风吹过b
好像还是不行啊,加载记事本还是出现下标越界
整个源码在这
fm.rar (2.42 KB)
2012-12-27 15:43
yz1025
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:485
专家分:919
注 册:2012-10-26
收藏
得分:0 
程序代码:
Dim AssStations() As String

Private Sub aLista_Click()
wmp1.URL = AssStations(aLista.ListIndex)
End Sub

Private Sub Form_Load()
Dim Tmp1, Tmparray1
Dim i As Integer

    i = 0: ReDim AssStations(i)
    
    If Dir(App.Path & "\adult.dat") <> "" Then
        Open App.Path & "\adult.dat" For Input As #1
            aLista.Clear
            While Not EOF(1)
                Line Input #1, Tmp1
                If Trim(Tmp1) <> "" Then
                    If InStr(Tmp1, "||>") <> 0 Then    '<------ P.S
                        Tmparray1 = Split(Tmp1, "||>")
                        ReDim Preserve AssStations(i)
                        If Tmparray1(0) <> "" Then
                            AssStations(i) = Trim(Tmparray1(1))
                            aLista.AddItem Trim(Tmparray1(0))
                        End If
                        i = i + 1
                    End If
                End If
            Wend
        Close #1
    End If
    
End Sub

不要投我
2012-12-27 16:19
ymhy12345
Rank: 2
等 级:论坛游民
帖 子:83
专家分:36
注 册:2011-8-27
收藏
得分:0 
回复 5楼 yz1025
谢谢各位版主,加载记事本可以了,就是加载后<<<分区一>>>这些文字没有显出来
2012-12-27 17:28
yz1025
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:485
专家分:919
注 册:2012-10-26
收藏
得分:0 
回复 6楼 ymhy12345
这你没讲我没看楼上的文不知道
这只需加个Else就可以做到
让你当作业

不要投我
2012-12-27 20:11
ymhy12345
Rank: 2
等 级:论坛游民
帖 子:83
专家分:36
注 册:2011-8-27
收藏
得分:0 
俺加一行On Error Resume Next
没有显示下标越界,加载记事本,列表也显示分区一了
2012-12-27 22:25
ymhy12345
Rank: 2
等 级:论坛游民
帖 子:83
专家分:36
注 册:2011-8-27
收藏
得分:0 
回复 7楼 yz1025
不加这个on error resume next,俺还真没办法解决了,俺对listbox不太懂
2012-12-27 23:55
快速回复:vb 下标越界怎么解决?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023219 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved