Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.05.21;
Скачать: CL | DM;

Вниз

прочитать 2 последние строчки текстового файлы   Найти похожие ветки 

 
Padre   (2006-04-27 20:46) [0]

Как я могу узнать значение 2х последних строчек текстового файла?


 
Virgo_Style ©   (2006-04-27 21:09) [1]

Например,
- загрузить все (TStringList.LoadFromFile) и выбрать нужное.
- читать построчно, сохраняя текущую и предыдущую, до самого конца.
- открыть как бинарный, читать посимвольно, смещаясь назад, пока не доберешься до начала или третьего символа/комбинации символов, обозначающих новую строку.

Кстати, буду рад комментарию по поводу способа 3... Чудится мне в нем какой-то подвох, но не уверен %-)


 
jack128 ©   (2006-04-27 22:23) [2]

Virgo_Style ©   (27.04.06 21:09) [1]
нормальный способ..  Правда чтение лудше буффиризировать.. А то посимвольно читать из файла - не кузяво как то..


 
kester ©   (2006-04-27 23:48) [3]

по-моему, проще всего так:

var
t:TStringList;
begin
t:=TStringList.Create;
t.LoadFromFile("xfile.txt");
showmessage(t.Strings[t.count-1]);   //последняя строка
showmessage(t.Strings[t.count-2]);   //предпоследняя строка
t.Free;
end;

третий способ интересен =)
Но, посимвольно, во-первых, лишний загруз процессора (хотя и совершенно незначительный, но все же), во-вторых, загруз своих собственных мозгов =)


 
balepa ©   (2006-04-28 06:06) [4]


> kester ©   (27.04.06 23:48) [3]
> загруз своих собственных мозгов =)

Так мозги надо тренировать.


 
jack128 ©   (2006-04-28 14:50) [5]

kester ©   (27.04.06 23:48) [3]
Но, посимвольно, во-первых, лишний загруз процессора (хотя и совершенно незначительный, но все же),

наивная духа.  А как ты думаешь TStrings.LoadFromFile весь файл на строки разбивает? Точно так же посимвольно анализирует содержимое файла..


 
Vetas   (2006-04-28 17:40) [6]


Var s,s1:string;
f:textfile;
Begin
s:="";s1:="";
assignfile(f,"Имя файла");
reset(f);
while not eof(f) do
Begin
s1:=s;
s:=readln(f,s);
End;
CloseFile(f);
// В s - последняя строка, в s1 - предпоследняя.
End;


 
kester ©   (2006-04-28 20:08) [7]

jack128
Да, ты прав. Так тогда какая разница, использовать LoadFromFile или самому корячиться))


 
Anatoly Podgoretsky ©   (2006-04-28 21:32) [8]

Для этого надо прочитать все предыдущие или отказаться от текстовых файлов в пользу бинарных и читать с конца. Для больших файлов идеальное решение.


 
Германн ©   (2006-04-29 01:50) [9]


> Anatoly Podgoretsky ©   (28.04.06 21:32) [8]
>
> Для этого надо прочитать все предыдущие или отказаться от
> текстовых файлов в пользу бинарных и читать с конца. Для
> больших файлов идеальное решение.
>

Добавлю ещё своё ИМХО.
Нужно, в первую очередь, как обучали нас на военной кафедре, "Поставить задачу"!
Задача "прочитать две последние строки" кажется мне очень уж не мотивированной!
А уж после следует "Принять решение"!


 
jack128 ©   (2006-04-29 16:04) [10]

kester ©   (28.04.06 20:08) [7]
затем, что это для больших файлов - это гараздо быстрее будет работать.. Тут где то рядом как раз пробегал вопрос про сортировку 2 гиговых текстовых файлов..



Страницы: 1 вся ветка

Текущий архив: 2006.05.21;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.047 c
8-1134806433
Kot Andrei
2005-12-17 11:00
2006.05.21
"Упрощение" цветов на фотографии


3-1143620069
Volodya_
2006-03-29 12:14
2006.05.21
ADO DBF


15-1145819944
Yeg
2006-04-23 23:19
2006.05.21
Регистрация на www.ripn.net


15-1146050218
Kolan
2006-04-26 15:16
2006.05.21
Где в Delphi 2006 кнопка Import Type Libruary?


4-1141048917
Arazel
2006-02-27 17:01
2006.05.21
Запретить регистрвцию процесса в системе