| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 417 人关注过本帖
标题:关于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
快速回复:关于VB的txt读取的问题
数据加载中...
 
   



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

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