vb问题 高手请进

先看下程序代码:'***************************取文本最后一行*****************************PrivateFuncti... 先看下程序代码:

'***************************取文本最后一行*****************************
Private Function readLastLine(ByVal strFileName As String) As String
Dim objFSO As Object
Dim objTextStream As Object
Dim strReturn As String
Dim lngTime As Single
Dim VarData(1) As Variant
Dim Itime As Integer '时间循环变量,同时为行循环变量
Dim Iline As Integer '列循环变量

Dim i As Integer
i = 3

Me.MousePointer = vbHourglass
' On Error Resume Next
'// 创建 FileSystemObject 对象
Set objFSO = CreateObject("Scripting.FileSystemObject")

Set objTextStream = objFSO.OpenTextFile(strFileName, 1)

lngTime = Timer
With objTextStream
Do While Not .AtEndOfStream
DoEvents
strReturn = .ReadLine
.SkipLine

If Not .AtEndOfStream Then strReturn = .ReadLine
Loop
readLastLine = strReturn
.Close
End With

Debug.Print Timer - lngTime
Me.MousePointer = vbDefault
Set objTextStream = Nothing
Set objFSO = Nothing

End Function
'***************************取文本最后一行*****************************
Private Sub Command1_Click()
Text1.Text = readLastLine("C:\temp\1.his")
VarData = Split(Text1.Text, ",", 6)
End Sub
到了这里就把一篇文章的最后一行读取出来的,后面的split函数不用管了,下面就是要出的问题了,这样运行一编只是把一个文件的最后一行读取出来,而着个程序的主要目的是把多个文件的最后一行数据全组合起来放到一个文件里,我尝试用下面的方法
Private Sub Command1_Click()
Dim path As Variant '定义路径文件名数组

path = Array(123456789, "C:\1.his", "C:\2.his", "C:\3.his", "C:\4.his", "C:\5.his", "C:\6.his", "C:\7.his", "C:\8.his")
'数组初赋值

Text1.Text = readLastLine(path(i))
VarData = Split(Text1.Text, ",", 6)

i = i + 1
If i = 8 Then
i = 0
End If
End Sub

但当输出第一次值后以后就不会改变了,就是说后面不管怎么循环读取的都是第一个文件的值,不知道为什么,是不是因为程序不在鼠标事件里的缘故。

我现在又考虑把读取最后一行的程序放到这个程序外部,在编写个程序调用他,读取结束后关闭程序,重复打开关闭来实现,不知道可行不可行,我没学过vb,这纯粹是硬着头皮上的,希望各位高手给点意见。
不给原代码没关系,给我个可行的方法,还有相关的学习资料也就行了,

最后再重复一编题,同时读取很多文件的最后一行数据,剩下的问题自己已经解决。

100分放上了,只要您帮我,双手奉上,说明详细的可能继续追加

谢谢
2楼的意思我明白,你可以看下我的代码,我每运行一次鼠标事件,循环变量i增加1,这样和你所说的循环没什么区别,请先看清题,我要求同时读取多个文件的最后一行,我写的哪个程序段,当读取了第一次值后就没有其他动作了,也就是说当读完第一个文件的值后,我再读第二个文件事,显示的值仍然是第一个文件的
追加50分,悬赏高手
展开
 我来答
呼沛槐0R
2006-11-15 · TA获得超过2661个赞
知道大有可为答主
回答量:2135
采纳率:0%
帮助的人:2667万
展开全部
Private Sub Command1_Click()
Dim path As Variant '定义路径文件名数组

path = Array("C:\1.his", "C:\2.his", "C:\3.his", "C:\4.his", "C:\5.his", "C:\6.his", "C:\7.his", "C:\8.his")
'数组初赋值
Dim i As Integer
For i = 0 To 7
Text1.Text = readLastLine(path(i))
VarData = Split(Text1.Text, ",", 6)
Next
End Sub

这么简单的问题你看看书知道怎么回事了

补充:
原来你想这样。你不会单步执行一下看看你的i是不是每次都会变成0?把选项 强制变量声明 打开,养成变量声明的好习惯,不然以后你转到其他语言会很不习惯的。

Option Explicit

Private Sub Command1_Click()
Static i as integer
Dim path As Variant '定义路径文件名数组
path = Array("C:\1.his", "C:\2.his", "C:\3.his", "C:\4.his", "C:\5.his", "C:\6.his", "C:\7.his", "C:\8.his")
'数组初赋值
Text1.Text = readLastLine(path(i))
VarData = Split(Text1.Text, ",", 6)
i = i + 1
If i > 7 Then
i = 0
End If
End Sub
百度网友55653b222
2006-11-14
知道答主
回答量:21
采纳率:0%
帮助的人:0
展开全部
vrhero 的回答是正解,看到了100分才进来的,可惜啊,已经有人回答了,要是我早来几个小时就好啦,100分,太诱人啦。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fender_x
2006-11-15 · TA获得超过423个赞
知道小有建树答主
回答量:504
采纳率:0%
帮助的人:551万
展开全部
楼主的意思是点击一次就读一个文件还是点击一次就读所有的8个文件?
如果是点击一次就读一个文件的话,则在COMMAND1_CLICK()事件内加入i的静态定义,
Static i as integer
如果是点击一次就读所有的8个文件拿vrhero的答案应该就是对的了.

或许我也没看懂你到底要问什么吧,还有疑问的话就给我发百度的消息好了.
下午2:00上班..
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式