Текущий архив: 2006.03.12;
Скачать: CL | DM;
Вниз
Работа с текстом Найти похожие ветки
← →
Firefly © (2006-02-19 11:33) [0]Здравствуйте.
Я хочу найти кол-во строк в файле.
Примерный алгоритм
repeat
найти конец строки;
inc(кол-во строк);
until конец файла;
- верен?
p.s. не надо мне говорить что я чайник - я и сам знаю.
← →
Palladin © (2006-02-19 11:37) [1]Function GetLinesCount1(Const p_strFileName:String):Integer;
Begin
With TStringList.Create Do
Try
LoadFromFile(p_strFileName);
Result:=Count;
Finally
Free;
End;
End;
← →
ferr © (2006-02-19 11:38) [2]в такой задаче алгоритм только мешает.
← →
ferr © (2006-02-19 11:38) [3]лучше бы размер входных данных указал.
← →
Firefly © (2006-02-19 11:44) [4]Если вы имеете ввиду кол-во строк - от 0 до нескольких(нескольких десятков) миллионов.
> [1] Palladin © (19.02.06 11:37)
А если количество строк больше диапазона TstringList?
← →
Palladin © (2006-02-19 11:54) [5]ну такое бывает только в сказках, что бы текстовый файл больше 4гб, но:
Const
const_buf_size=65536;
Function GetLinesCount2(Const p_strFileName:String):Int64;
Var
Buf:Array of Byte;
i,nReaded:Integer;
Begin
Result:=0;
SetLength(Buf,const_buf_size);
With TFileStream.Create(p_strFileName,fmOpenRead) Do
Try
Repeat
nReaded:=Read(Buf[0],Length(Buf));
For i:=0 to nReaded-1 Do
If Buf[i]=13 Then Inc(Result);
Until nReaded=0;
Finally
Free;
End;
End;
← →
begin...end © (2006-02-19 11:56) [6]I := 0;
while not EOF(F) do
begin
ReadLn(F, S);
Inc(I)
end
← →
Firefly © (2006-02-19 12:02) [7]Я вообще-то просил оценить алгоритм, а не приводить код.
Но все равно всем спасибо.
> [5] Palladin © (19.02.06 11:54)
Согласен. Но даже текстовик не больший 4Гб может насчитывать несколько миллионов строк.
← →
begin...end © (2006-02-19 12:06) [8]Сорри, в [6] ReadLn(F, S) следует заменить на ReadLn(F).
← →
Palladin © (2006-02-19 12:09) [9]при использовании TStringList дело не в количестве строк, а в размере файла
← →
Anatoly Podgoretsky © (2006-02-19 12:12) [10]Firefly © (19.02.06 11:33)
begin...end © (19.02.06 11:56) в [6] привел грамотную реализацию твоего алгоритма.
← →
Карелин Артем © (2006-02-19 12:38) [11]Если использовать список, то:
1) Какая реакция будет на файл больше 64К в Win9Х??
2) Будет ли правильно определено количество строк при наличии непечатных символов типа #0 и символа конца текстового файла???
← →
Anatoly Podgoretsky © (2006-02-19 12:41) [12]Карелин Артем © (19.02.06 12:38) [11]
Такой файл не является текстовым, соответственно говорить о количестве строк не приходится.
← →
Карелин Артем © (2006-02-19 12:44) [13]
> Anatoly Podgoretsky © (19.02.06 12:41) [12]
Программы типа MultiEditor/Foton досовые могли делать такие текстовые файлы с форматированием
← →
Anatoly Podgoretsky © (2006-02-19 12:52) [14]Карелин Артем © (19.02.06 12:44) [13]
Файл с форматированием - это не текстовый, а двоичный файл.
← →
Firefly © (2006-02-19 12:58) [15]Удалено модератором
← →
Firefly © (2006-02-19 12:59) [16]Извиняюсь, клиент глючил.
> Карелин Артем © (19.02.06 12:44) [13]
В моем случае работа идет с обычными текстовиками
← →
Firefly © (2006-02-19 13:28) [17]
> Firefly © (19.02.06 12:58) [15]
Никогда не думал, что удостоюсь такой чести:-|
Страницы: 1 вся ветка
Текущий архив: 2006.03.12;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.011 c