找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 5263|回复: 3

【求助】关于读取大文本

[复制链接]

1

主题

3

回帖

0

精华

初来乍到

积分
318
发表于 2009-2-4 17:36:41 | 显示全部楼层 |阅读模式
老马。。呵呵和我混的一个外挂论坛所有者的外号一样!!

有个问题 我要读取一部小说,比较大 3M吧 用这个方法

Open FileName For Input As #1
        txtTemp = StrConv(InputB$(LOF(1), 1), vbUnicode)
        Close #1
        frmMainCode.Text1.Text = txtTemp

结果读不完整,只读了很少一部分,怎么才能读完,为什么这个读不完呢?

其实最好,小说一般都是每三个换行是一章内容,有没有方法读到3个换行时就暂停,下次接着这里读?

希望各位大大和老马帮忙 我家里还有3天就要停网了 希望有时间能尽快吧! 先谢谢了

1

主题

3

回帖

0

精华

初来乍到

积分
318
 楼主| 发表于 2009-2-4 17:39:39 | 显示全部楼层
<p>本来用的INPUT读取的 ,文本太大,就死机了- -!</p>
<p>&nbsp;</p>
[此贴子已经被作者于2009-2-4 17:41:27编辑过]

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
发表于 2009-2-5 17:07:23 | 显示全部楼层
<p>3M不算很大啊</p>
<p>&nbsp;</p>
<p>我还以为你要读100M以上呢</p>
<p>&nbsp;</p>
<p>如果文件内容在100M以下,就可以使用二进制方式打开并一次性读入内存的办法,比较方便,就是会使用相同大小的内存,如下:</p>
<p>&nbsp;</p>
<div class="msgheader">QUOTE:</div><div class="msgborder"><br/>
<p><font face="Verdana">Dim txtTemp As String</font></p>
<p>&nbsp;</p>
<p><font face="Verdana">Open "d:\temp\1.txt" For Binary As #1<br/>&nbsp;&nbsp;&nbsp; txtTemp = String(LOF(1), Chr(0))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '分配缓冲区<br/>&nbsp;&nbsp;&nbsp; Get #1, , txtTemp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '一次性读入<br/>Close #1</font></p>
<p><font face="Verdana"><font face="Verdana">Debug.Print StrConv(txtTemp, vbFromUnicode)</font></font></p></div>
<p>&nbsp;</p>
<p>我找了个98M左右的TXT,在我的机器上一共花了近三秒,没精确测试,不过应该能满足你的要求了[em05]</p>
我就是嗷嗷叫的老马了......

1

主题

5

回帖

0

精华

铜牌会员

积分
217
发表于 2009-3-18 00:26:52 | 显示全部楼层
学习到了,不知道可以用这个方法读exe不?
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表