vb读取text并逐行显示,已有代码,请修改下
vb吧
全部回复
仅看楼主
level 1
qq8394908 楼主
Dim fso As New FileSystemObject
Dim fil As File
Dim ts As TextStream
Dim pa As String
Dim oo As String
pa = App.Path
pa = pa + "\" + "aaa.bat"
'Print pa
Set fil = fso.GetFile(pa)
Set ts = fil.OpenAsTextStream(ForReading)
Do Until ts.AtEndOfStream
oo = ts.ReadLine
Print oo
Text1.Text = Text1.Text + oo + Chr(13) + Chr(10)
Loop
ts.Close
用的这个代码,但是结果很遗憾,左半部窗体显示出逐行的文本,而text内容,却一次性全部显示出来

2011年06月03日 13点06分 1
level 14
提出两点你必须要养成的习惯。
一:字符串连接,一定要学会用&,尽量不要用+,可减少很多出错率。
二:文本框逐行输出:text1=text1 + oo + chr(13) + chr(10)
改为:text1.seltext=oo & vbcrlf
这是效率问题,值接在光标处输出,在文本较大时不易卡。
你说要逐行显示,可在循环中用API Sleep进行延时,或者用Timer来控制输出。
2011年06月03日 15点06分 2
level 12
Dim x
Dim a As String
Private Sub Form_Load()
Timer1.Interval = 1000'设置间隔时间
End Sub
Private Sub Timer1_Timer()
x = x + 1
If Right(App.Path, 1) <> "\" Then a = App.Path & "\" '文本文件的路径
Text1.SelText = Split(GetTxt(a & "vb.txt"), vbCrLf)(x) & vbCrLf
End Sub
Private Function GetTxt(TxtPath As String) As String
Dim i As Integer: i = FreeFile
Open TxtPath For Input As #i
GetTxt = StrConv(InputB(LOF(i), i), vbUnicode)
Close #i
End Function
'****************************************
试试这个每秒显示出一行

2011年06月03日 17点06分 3
level 14
回3#:注意效率!
load时先读出文本分割成数组储存到变量,再逐行输出,还要注意最后一行,不要换行。
2011年06月04日 05点06分 4
level 12
我不想说.......
2011年06月04日 09点06分 5
1