永发信息网

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

答案:4  悬赏:80  手机版
解决时间 2021-03-18 08:59
点击按钮,文本框中显示文字

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

在打开较大文件时,速度很慢,而且经常没有响应
还有,怎样在打开的过程中显示部分文字(现在只有完全打开以后才能显示)
怎样处理??
最佳答案
建议改用richtextbox控件,TextBox最大容量为64K个字符(中文一个汉字算一个),也就是说你用Text1.Text = Text1.Text + st + vbCrLf 方式就是读入了一个10M的文件,也只能看前面的64K个字符,后面的看不到了。
当然,也能修改读入的方式。使用二进制读取后用API为TextBox赋值能够读入更大的容量(2147483647个字节),但比较麻烦。如果没有特殊的要求,改用richtextbox是最方便的解决方式。
全部回答
循环处加上Application.DoEvents(),可以优先响应系统任务,不会卡死了
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
把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
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
华冠大药房大崮头店地址有知道的么?有点事想
600平方米等于多少公顷???
6斤加10斤等于多少脑筋急转弯
四个字成语有登有盟有鉴有之有城有白有心有下
羊走着走着 遇到一只狼 打一水果?
宜天时尚主题宾馆安发店在什么地方啊,我要过
鼠标驱动总是一会正常 一会没有驱动 这个怎么
电子琴是不是不插电就不会响?
为什么光对鸟的换羽有影响?
甘霖镇中心小学在什么地方啊,我要过去处理事
类似你的背影,岁月从容的网名
倩女幽魂怎么靠做家具赚钱?
好听的帮派名字
奥开头的篮球运动员,四个字
陈家山隧道这个地址在什么地方,我要处理点事
推荐资讯
一言其蔽金玉之外组成成语
额尔古纳市政务服务中心社保局分中心地址在哪
怎样在115网盘中下载东西,是不是要成为vip才
请问邱国和三个字签名怎么写好看啊?
为什么成人的东西不能给小孩看
龙将第四关官渡之战攻略 单人袁绍怎么打通关
清大快乐学习屋怎么去啊,有知道地址的么
一首英文歌男歌手唱的中间有十几个欧欧欧欧还
汽车行驶时增减挡是否也要慢抬离合(即半联动)
我叫苏永强 帮我起个英文名 谢谢了
汽车装潢,维修,钣金的各利润比是多少呢,知
我的WPS里面加载宏没有选项是怎么回事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?