读书人

下标越界怎么解决

发布时间: 2012-05-13 16:39:43 作者: rapoo

下标越界如何解决
Dim Lines() As String
Dim mCurrent As Long
Private Sub Form_Load()
Open "c:/Gyro.txt" For Binary As #1
Dim L As Long
Dim D() As Byte
L = LOF(1)
If L = 0 Then
MsgBox "文件长度为0"
Exit Sub
End If
ReDim D(L - 1)
Get 1, , D
Dim s As String
s = StrConv(D, vbUnicode)
Lines = Split(s, vbCrLf)
end sub
Private Sub Timer2_Timer()
mCurrent = mCurrent + 1
If mCurrent > UBound(Lines) Then mCurrent = 1
Dim D() As String
D = Split(Lines(mCurrent), " ")
Text14.Text = D(0)
gx = D(0)
Text15.Text = D(1)
gy = D(1)
Text16.Text = D(2) 'd(0),d(1),d(2) 既为每行的三个数,你自己决定怎么使用这三个数吧
gz = D(2)
end sub


这个程序运行时会弹出下标越界的提示,如何解决呢??循环读取文件什么的都可以只要不出错就好

[解决办法]
If mCurrent > UBound(Lines) Then mCurrent = 1
If UBound(Lines) = 0 Then mCurrent = 0

[解决办法]
用循环就不会出错。如果是想动态显示数据的话,加一个API函数Sleep,时间5秒钟。

VB code
Dim D() As Stringfor mCurrent=1 to UBound(Lines)      D = Split(Lines(mCurrent), " ")  Text14.Text = D(0)  gx = D(0)  Text15.Text = D(1)  gy = D(1)  Text16.Text = D(2) 'd(0),d(1),d(2) 既为每行的三个数,你自己决定怎么使用这三个数吧  gz = D(2)  Sleep(5000)next 

读书人网 >VB

热点推荐