爱问知识人 爱问教育 医院库

VB下标越界

首页

VB下标越界

 Dim eachStr     As Variant
    
    Dim dishNos     As String
    Dim dishNames   As Variant
    
    Dim dishNo      As String
    Dim dishName    As String
    Dim dishAddr    As String
    Dim strline
    Dim z
    Dim n() As String
    Dim i As Long
    Dim nn
    Dim ff
    Dim vv
    Dim tt
    Dim nameAddr    As Long
    
    Dim BinaryArray()       As Byte
 
    nameAddr = 0
                
                
                
                
                


    For Each eachStr In mStrings
    
         If eachStr <= 6 Then
        eachStr = eachStr
        End If
        dishNo = StrConv(Left$(eachStr, 6), vbFromUnicode) '拼音
        dishName = Mid$(eachStr, 7)                        '汉字
        
        Open App.Path + "\Output\22.txt" For Input As #1
        While Not EOF(1)
        Line Input #1, strline
        z = z & strline & vbCrLf
        Wend
        Close #1
        n = Split(z, vbCrLf)
        tt = eachStr
         For i = 0 To UBound(n)
            If dishName = "" And Left$(eachStr, 6) = Left$(n(i), 6) Then
            vv = Replace(tt, tt, n(i))   这里得n(i)老是说下标越界
            End If
         Next
        dishAddr = vbNullString
        nameAddr = LenB(StrConv(dishNames, vbFromUnicode))
                                                    
'        dishAddr = ChrB$(nameAddr Mod 256) + dishAddr
'        nameAddr = nameAddr \ 256
'
'        dishAddr = ChrB$(nameAddr Mod 256) + dishAddr
'        nameAddr = nameAddr \ 256
'
'        dishAddr = ChrB$(nameAddr Mod 256) + dishAddr
'        nameAddr = nameAddr \ 256
'
'        dishAddr = ChrB$(0) + dishAddr
        
        dishAddr = SetLong(nameAddr, False)
        
        nameAddr = LenB(StrConv(dishName, vbFromUnicode))
                                        
        '--- 索引文件: 拼音(6) + 地址(4) + 汉字个数(1)
        
        dishNos = dishNos + dishNo + dishAddr + ChrB$(nameAddr \ 2)
        '--- 内容文件: 汉字串
        
        dishNames = dishNames + dishName
      
            
        Next

提交回答
好评回答
  • 2009-03-19 17:23:09
    下标越界是指目前数组下标超出了原先定义的数组的最大下标。
    你在定义n()数组时,没有定义下标,因此会出错。
    可以在定义时给个合理的下标数如dim n(50) as string。
    或者在使用数组前用redim重新定义。

    黄***

    2009-03-19 17:23:09

类似问题

换一换
  • 软件 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新资料 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):