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[展开]
w***
2009-03-18 15:26:38
举报