高手们????

骤逝 2005-08-29 03:34:49
vb中如何快速读取文本文件的行数??
...全文
142 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
viena 2005-08-31
  • 打赏
  • 举报
回复
如果速度要求高的话,可以这样:
二进制方式打开,整个文件读到Byte数组(注意缓冲区的大小要合适)
遍历Byte数组,对回车或者换行符计数
viena 2005-08-31
  • 打赏
  • 举报
回复
//樓上的幾們方法不錯,
//但在處理比較大的文本文件時速度上可能會比較慢。
你试过了吗?一次性读入内存,没有IO瓶颈,不会慢的
vansoft 2005-08-31
  • 打赏
  • 举报
回复
用RichTextBox直接打開文本文件,
用API函數直接獲取RichTextBox行數。

針對比較大的文件用起來好些。

樓上的幾們方法不錯,
但在處理比較大的文本文件時速度上可能會比較慢。
sdrcxzy 2005-08-30
  • 打赏
  • 举报
回复
来晚了,楼上正解。解贴吧
fishmans 2005-08-30
  • 打赏
  • 举报
回复
Dim Fso As New FileSystemObject
Dim txtfile As TextStream
Dim txtlines As Long
If Fso.FileExists(DesDrive + "dong.txt") Then
Set txtfile = Fso.OpenTextFile(DesDrive + "dong.txt")
Do Until txtfile.AtEndOfStream
txtfile.SkipLine
txtlines = txtlines + 1
Loop
end iF
viena 2005-08-30
  • 打赏
  • 举报
回复
viena(维也纳nn-实心木头人) 的方法也不错^_^
conrad_wan 2005-08-30
  • 打赏
  • 举报
回复
cuizm(射天狼) 的方法不错^_^
viena 2005-08-30
  • 打赏
  • 举报
回复
Dim strContent As String

Open "D:\testlog.log" For Input As #1
strContent = StrConv(InputB(LOF(1), #1), vbUnicode)
Close #1

MsgBox "文件行数:" & Len(strContent) - Len(Replace(strContent, vbCr, "")) + 1
射天狼 2005-08-30
  • 打赏
  • 举报
回复
不用外部控件的方法:

Dim strContent As String
Dim aryTmp As Variant

Open "D:\testlog.log" For Input As #1
strContent = StrConv(InputB(LOF(1), #1), vbUnicode)
Close #1

aryTmp = Split(strContent, vbCrLf)
MsgBox "文件行数:" & UBound(aryTmp)
Erase aryTmp

1,488

社区成员

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

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