永发信息网

vb程序打开超大txt文件(10M)

答案:4  悬赏:80  手机版
解决时间 2021-03-18 08:59
  • 提问者网友:寂寞梧桐
  • 2021-03-17 18:32
点击按钮,文本框中显示文字

Command1.Click
Text1.Text = ""
Open XXXXXXXXXXXXXX/XXXXX.txt For Input As #1
Do While Not EOF(1)
Line Input #1, st
Text1.Text = Text1.Text + st + vbCrLf
Loop
Close #1
End Sub

在打开较大文件时,速度很慢,而且经常没有响应
还有,怎样在打开的过程中显示部分文字(现在只有完全打开以后才能显示)
怎样处理??
最佳答案
  • 五星知识达人网友:千杯敬自由
  • 2021-03-17 19:11
建议改用richtextbox控件,TextBox最大容量为64K个字符(中文一个汉字算一个),也就是说你用Text1.Text = Text1.Text + st + vbCrLf 方式就是读入了一个10M的文件,也只能看前面的64K个字符,后面的看不到了。
当然,也能修改读入的方式。使用二进制读取后用API为TextBox赋值能够读入更大的容量(2147483647个字节),但比较麻烦。如果没有特殊的要求,改用richtextbox是最方便的解决方式。
全部回答
  • 1楼网友:一叶十三刺
  • 2021-03-17 22:18
循环处加上Application.DoEvents(),可以优先响应系统任务,不会卡死了
  • 2楼网友:骨子里都是戏
  • 2021-03-17 21:13
Command1.Click Text1.Text = "" Open XXXXXXXXXXXXXX/XXXXX.txt For Input As #1 Do While Not EOF(1) Line Input #1, st Text1.Text = Text1.Text + st + vbCrLf doevents'加这一句试试 Loop Close #1 End Sub
  • 3楼网友:鸠书
  • 2021-03-17 19:54
把Text1.Text = Text1.Text + st + vbCrLf 放在循环之后。不过改成这样就可以了。Text1.Text = st 你既然做了一个循环读入每行,那就是说st已经包含的是文件中的每行了。回车换行符也不用,因为就是读取的每行,因为你在文件中不可能没有回车换行, 改成这样吧。 Command1.Click Text1.Text = "" Open XXXXXXXXXXXXXX/XXXXX.txt For Input As #1 Do While Not EOF(1) Line Input #1, st Loop Text1.Text = st Close #1 End Sub
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯