蜗牛2008 发表于 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天就要停网了 希望有时间能尽快吧! 先谢谢了

蜗牛2008 发表于 2009-2-4 17:39:39

<p>本来用的INPUT读取的 ,文本太大,就死机了- -!</p>
<p>&nbsp;</p>
[此贴子已经被作者于2009-2-4 17:41:27编辑过]

马大哈 发表于 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,在我的机器上一共花了近三秒,没精确测试,不过应该能满足你的要求了</p>

wpfluck 发表于 2009-3-18 00:26:52

学习到了,不知道可以用这个方法读exe不?
页: [1]
查看完整版本: 【求助】关于读取大文本