求高效的读文件方法

zjg_robin 2006-10-13 01:49:18
如何在VB6种快速的读取本地的大文本文件?

目前采用了两种办法,一种是传统代码,如下:
Dim result As String

Open fileName For Binary As #fn
result = Input(LOF(fn), #fn)
Close #fn

一种是用fileSystemObject,如下:
Dim fso As New FileSystemObject, file1 As File, ts As TextStream
Dim str As String

Set file1 = fso.GetFile(Text1.Text)
Set ts = file1.OpenAsTextStream
Do While Not ts.AtEndOfStream
str = str & ts.Read(4096)
Loop

经过测试两者速度几乎是一样的(文件大小在2M左右,都是用3,4秒)
如果文件是4M的话,时间又翻倍
如果文件大小是百K的话,则用时为几百毫秒。

请问有没有优化的办法,可以提高速度?最好能够限制在3秒以内,否则用户很难受。
...全文
223 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wucuilan827 2006-11-29
  • 打赏
  • 举报
回复
mark
zhuanzhu_zhizhuo 2006-10-13
  • 打赏
  • 举报
回复
学习了
lyjun_311 2006-10-13
  • 打赏
  • 举报
回复
ado读文件是不是快点
pigsanddogs 2006-10-13
  • 打赏
  • 举报
回复
一个5M的文件, 用我的方法为110ms, 用楼主第一种方法为14078ms

pigsanddogs 2006-10-13
  • 打赏
  • 举报
回复
Dim result As String

Open fileName For Binary As #fn
Dim ttt() As Byte
ReDim ttt(LOF(fn) - 1)
Get #fn, , ttt
result = StrConv(ttt, vbUnicode)
Close #fn


实验证明, 这种方法比楼主第一种方法要快的多的多。
of123 2006-10-13
  • 打赏
  • 举报
回复
大文件不要一次全读出,分页显示。
VBToy 2006-10-13
  • 打赏
  • 举报
回复
关注一下!我从不用FSO。
pigsanddogs 2006-10-13
  • 打赏
  • 举报
回复
文件越大读的时间当然越长啊。
几百k用几百ms, 2m用3,4s, 4m用6,8s。
这有什么不正常??


当然
Do While Not ts.AtEndOfStream
str = str & ts.Read(4096)
Loop
这段代码, 速度是及其慢的。

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧