我有一个4M的文本文件,怎么才能快速统计它有多少行? 如果每行的字数固定,可以这样试试:1.获得该文件的大小,比如,100字节2.假如每行25字节的话,100 div 25=4行 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我看还是读到TStringList里去统计方便。 这样的方法行不行:AssignFile(AFile,'c:\myfile.dat');Reset(AFile, 1);FSize := FileSize(AFile)/5;BufferSize := 1024 * 64; // 缓存大小,当前设为 64Kfor Count := 1 to FSize dobegin BlockRead(AFile, Buffer, SizeOf(Buffer), BufferSize); // 这里统计换行符个数end; 分段去读文件的内容还不如用TstringList控件一次读入来得快。文件你是必须读的,不见得你自己写的程序就比Borland的程序快多少。还是用控件吧。TstringList.count就解决问题了。 读到控件里虽然简单,但是耗内存用文件也不会太慢,不必用二进制文件方式,打开后不断的readln,并且累加,直到文件结束就可以知道行数了 ACCESS delete Fast Report中如何打印自定义数组? 问个关于EOF的问题 关于一次性applyudpate(0)的问题 如何取得浏览器中的文字? 我老人家想做一个调查! 当我安装了quickreport3.5后,我的teechart5.02不能用了,编译程序的时候说版本不对 一个简单的工具栏问题 菜鸟问题:请问DBGrid控件如何获取数据? 如何专心学delphi 我是个DELPHI和COM的初学者,各位帮帮忙,先谢谢了 闲聊一下...其实系统分析师是做什么工作的...要懂得什么知识才能做这个职位...待遇如何?
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;
文件你是必须读的,不见得你自己写的程序就比Borland的程序快多少。
还是用控件吧。TstringList.count就解决问题了。
用文件也不会太慢,不必用二进制文件方式,打开后不断的readln,并且累加,直到文件结束就可以知道行数了