Главная страница
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.039 c
11-1126286716
homm
2005-09-09 21:25
2006.05.21
Новый TButton


2-1146331673
cardexc
2006-04-29 21:27
2006.05.21
другой ПК


4-1140876533
sco
2006-02-25 17:08
2006.05.21
Подождать закрытия другой программы


1-1144937590
Лыган
2006-04-13 18:13
2006.05.21
Хинт по движению мыши


8-1135172186
ZbarKiy
2005-12-21 16:36
2006.05.21
Как преобразовать TBitmap?