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

下标越界怎么解决

2012-05-13 
下标越界如何解决Dim Lines() As StringDim mCurrent As LongPrivate Sub Form_Load()Open c:/Gyro.txt

下标越界如何解决
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 

热点排行