VB如何读取大的文本文件

我有一个大的文本文件,现在要对它读取并处理。但是我遇到这样一个问题:我单把读取文件的代码拿出来,做试验使用PrivateSubCommand1_Click()DimiAs... 我有一个大的文本文件,现在要对它读取并处理。

但是我遇到这样一个问题:

我单把读取文件的代码拿出来,做试验使用

Private Sub Command1_Click()

Dim i As Integer

i = 0

Dim linestr As String

Print "开始读取文件。。。"

Open FilePath1 For Input As #1

Print "打开成功"

Do While i < 2

Line Input #1, linestr

i = i + 1

Loop

Print "ok"

End Sub

运行这个东西,就会显示“开始读取文件。。。。” 然后就没反应了。

卡住了,等了半个小时都没有用。

但是

我将代码删点东西 不运行line input

Private Sub Command1_Click()

Dim i As Integer

i = 0

Dim linestr As String

Print "开始读取文件。。。"

Open FilePath1 For Input As #1

Print "打开成功"

End Sub

就会显示“开始读取文件。。。。” “打开成功” 。程序运行成功了。

请问问大家这个怎么办,我代码都写好了,就是没考虑到文件居然这么大,现在别说我代码处理部分了,读取都困难。

请大家帮我想一想,有没有方法让他一部分后停下来,让我的LINE INPUT运行一下 然后再读一部分。

或者直接将他写入内存 我内存很大,总之提高读取速度就是了,大家帮帮忙啊。
兄弟 不行啊 加上DoEvents 照样挂了

呵呵 我的文件大的吓人 700多MB,但是文件中已经分行了,一行就10几个字符,所以我要按行读处理。

wqlk1:

你的答案很不错,从你的程序中我收到不少启发,不过还有些不太明白,有QQ吗
展开
 我来答
qiduan135
2008-03-11 · TA获得超过103个赞
知道答主
回答量:215
采纳率:0%
帮助的人:88.3万
展开全部
用文件系统对象读取,FileSystemObject. 下面的例子是是我把一个文件里的所有字符读入到一个String变量里,希望对你有启发:

Dim fso As New FileSystemObject, fil As File, ts As TextStream
Dim strSend As String

strSend = ""
Set fil = fso.GetFile(App.Path & "\file\JCI._EXH.TXT")
Set ts = fil.OpenAsTextStream(ForReading, -2)
strSend = ts.ReadAll
Set fil = Nothing
Set ts = Nothing

此时变量 strSend里储存了JCI._EXH.TXT文本里所有的内容.并且速度很快.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lyglay
2008-03-11 · TA获得超过1137个赞
知道大有可为答主
回答量:975
采纳率:0%
帮助的人:0
展开全部
不知道你的文件多大,我是用一部小说测试的,3M多一点,读到一个string变量里只是一眨眼的工夫,绝对不到一秒钟

Private Sub Form_Load()
Dim allstr$
Debug.Print "开读"
ReadFrom "e:\生肖守护神.txt", allstr
Debug.Print "读完"
End Sub

Sub ReadFrom(FileName$, TXT$)
Dim fn&: fn = FreeFile
Open FileName For Input As #fn
TXT = StrConv(InputB$(LOF(fn), fn), vbUnicode)
Close #fn
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
oaita
2008-03-11 · TA获得超过708个赞
知道小有建树答主
回答量:669
采纳率:100%
帮助的人:802万
展开全部
能不能说明一下,你的文件有多大?是不是一行就得近几M,十几M
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cwa9958
2008-03-12 · TA获得超过1884个赞
知道大有可为答主
回答量:2504
采纳率:0%
帮助的人:2003万
展开全部
不懂了,
Do While i < 2

Line Input #1, linestr

i = i + 1

Loop
应该只是读了两行数据的啊,怎么会挂了呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2008-03-11 · TA获得超过527个赞
知道小有建树答主
回答量:307
采纳率:0%
帮助的人:169万
展开全部
一行一行读很慢的.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式