Форум: "Начинающим";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];
Внизпрочитать 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.012 c