Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.013 c
2-1147016485
AlexanderMS
2006-05-07 19:41
2006.05.21
Проблема с фокусом


2-1146731938
alk
2006-05-04 12:38
2006.05.21
Фильтрация


15-1145917789
Гость, однако!
2006-04-25 02:29
2006.05.21
Логотип


2-1145970590
nyron
2006-04-25 17:09
2006.05.21
сумма прописью


2-1146328385
Damian
2006-04-29 20:33
2006.05.21
Доступ к данным на CD





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский