Главная страница
    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.012 c
2-1146844463
WST
2006-05-05 19:54
2006.05.21
Edit


15-1146145979
X9
2006-04-27 17:52
2006.05.21
ICQ на смартфоне


4-1141072241
Grief
2006-02-27 23:30
2006.05.21
процессорное время для процесса.


2-1146625853
unlink
2006-05-03 07:10
2006.05.21
код символа


3-1143440797
Артём
2006-03-27 10:26
2006.05.21
Помогите пожалуйста с SQL запросом





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский