Подсчет количества строк в текстовом файле
Автор: [NIKEL]
WEB-сайт: http://delphibase.endimus.com
{ **** UBPFD *********** by delphibase.endimus.com ****
>> Подсчет количества строк в текстовом файле
Считает строки в текстовом файле,
основываясь на количестве символов $0A (LineFeed).
Зависимости: Windows
Автор: Борис Новгородов, mbo@mail.ru, Новосибирск
Copyright: Собственное написание
Дата: 1 декабря 2002 г.
***************************************************** }
function LinesCount(const Filename: string): Integer;
var
HFile: THandle;
FSize, WasRead, i: Cardinal;
Buf: array[1..4096] of byte;
begin
Result := 0;
HFile := CreateFile(Pchar(FileName), GENERIC_READ, FILE_SHARE_READ, nil,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if HFile <> INVALID_HANDLE_VALUE then
begin
FSize := GetFileSize(HFile, nil);
if FSize > 0 then
begin
Inc(Result);
ReadFile(HFile, Buf, 4096, WasRead, nil);
repeat
for i := WasRead downto 1 do
if Buf[i] = 10 then
Inc(Result);
ReadFile(HFile, Buf, 4096, WasRead, nil);
until WasRead = 0;
end;
end;
CloseHandle(HFile);
end;
Пример использования:
Label1.Caption := IntToStr(LinesCount('e:\zz.txt'));
|