点击按钮,文本框中显示文字
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
在打开较大文件时,速度很慢,而且经常没有响应
还有,怎样在打开的过程中显示部分文字(现在只有完全打开以后才能显示)
怎样处理??
vb程序打开超大txt文件(10M)
答案:4 悬赏:80 手机版
解决时间 2021-03-18 08:59
- 提问者网友:寂寞梧桐
- 2021-03-17 18:32
最佳答案
- 五星知识达人网友:千杯敬自由
- 2021-03-17 19:11
建议改用richtextbox控件,TextBox最大容量为64K个字符(中文一个汉字算一个),也就是说你用Text1.Text = Text1.Text + st + vbCrLf 方式就是读入了一个10M的文件,也只能看前面的64K个字符,后面的看不到了。
当然,也能修改读入的方式。使用二进制读取后用API为TextBox赋值能够读入更大的容量(2147483647个字节),但比较麻烦。如果没有特殊的要求,改用richtextbox是最方便的解决方式。
当然,也能修改读入的方式。使用二进制读取后用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
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯