标题:关于VB的txt读取的问题
只看楼主
q359870562
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-8-12
结帖率:75%
已结贴  问题点数:10 回复次数:2 
关于VB的txt读取的问题
自己做了一个可以读取txt文件的程序
Private Sub Command1_Click()
   Dim st As String, fpath As String
    If Right(Dir1.Path, 1) = "\" Then
        fpath = Dir1.Path & File1.FileName
    Else
        fpath = Dir1.Path & "\" & File1.FileName
    End If
    Form2.Text1.Text = ""
    Open fpath For Input As #1
    Do While Not EOF(1)
        Line Input #1, st
        Form2.Text1.Text = Form2.Text1.Text + st + vbCrLf
    Loop
    Close #1
Form2.Show
End Sub
但是运行时发现如果读取的txt文件较小的话还是可以正常显示到text控件上的
但是如果txt文件较大时,,vb就没法读取,,甚至会卡住
所以想问大神看看有没有什么的办法能让较大的txt文件也能正常显示到VB的text或者是其他更好的控件上,
2013-08-18 18:03
hjxlj
Rank: 10Rank: 10Rank: 10
来 自:江西
等 级:贵宾
威 望:14
帖 子:292
专家分:1519
注 册:2013-6-25
得分:10 
你下面这些读取文件的代码是最糟糕的
程序代码:
    Do While Not EOF(1)
        Line Input #1, st
        Form2.Text1.Text = Form2.Text1.Text + st + vbCrLf  '这句代码太糟糕了
    Loop
哪有在循环里不停地给Text1.Text属性赋值的,带来的后果必定运行速度极慢。下面是我为你修改后的代码:
程序代码:
Private Sub Command1_Click()
   Dim st As String, fpath As String
    If Right(Dir1.Path, 1) = "\" Then
        fpath = Dir1.Path & File1.FileName
    Else
        fpath = Dir1.Path & "\" & File1.FileName
    End If
    Form2.Text1.Text = ""
    Open fpath For Binary Access Read As #1
    Form2.Text1.Text  = Input(LOF(1), #1)   '一下就把所有内容赋给Text1.Text属性
    Close #1
    Form2.Show
End Sub
另外,如果你的Text1是TextBox控件的话,它对过大的txt文件也是无能为力的。不过这是控件本身的限制,与我们的代码没有关系了。如果你想显示较大的txt文件,建议你不要使用TextBox控件,而应该使用RichTextBox控件。


本人QQ:775420425
2013-08-21 00:50
q359870562
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-8-12
得分:0 
问题解决了。。谢了
2013-08-21 11:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-419322-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.140873 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved