我有一个4M的文本文件,怎么才能快速统计它有多少行?

dreamgoal 2002-04-21 10:40:17
文件比较大,读到控件或TStringList里在统计不可行。
...全文
108 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
joy_young 2002-04-21
  • 打赏
  • 举报
回复
读到控件里虽然简单,但是耗内存
用文件也不会太慢,不必用二进制文件方式,打开后不断的readln,并且累加,直到文件结束就可以知道行数了
Cipherliu 2002-04-21
  • 打赏
  • 举报
回复
分段去读文件的内容还不如用TstringList控件一次读入来得快。
文件你是必须读的,不见得你自己写的程序就比Borland的程序快多少。
还是用控件吧。TstringList.count就解决问题了。
torble 2002-04-21
  • 打赏
  • 举报
回复
这样的方法行不行:

AssignFile(AFile,'c:\myfile.dat');
Reset(AFile, 1);
FSize := FileSize(AFile)/5;
BufferSize := 1024 * 64; // 缓存大小,当前设为 64K
for Count := 1 to FSize do
begin
BlockRead(AFile, Buffer, SizeOf(Buffer), BufferSize);
// 这里统计换行符个数
end;
windindance 2002-04-21
  • 打赏
  • 举报
回复
把文件按二进制读入,
查找有多少个回车符
joy_young 2002-04-21
  • 打赏
  • 举报
回复
打开文件扫描回车的数目+1
Cipherliu 2002-04-21
  • 打赏
  • 举报
回复
我看还是读到TStringList里去统计方便。
Mylwf 2002-04-21
  • 打赏
  • 举报
回复
如果每行的字数固定,可以这样试试:
1.获得该文件的大小,比如,100字节
2.假如每行25字节的话,100 div 25=4行

5,391

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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