Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.03.14;
Скачать: [xml.tar.bz2];

Вниз

Как прочитать из конца файла указанное количество строк?   Найти похожие ветки 

 
TAV   (2004-02-29 18:43) [0]

Подскажите кто знает. Есть обычный текстовый файл, возможно не маленький, нужно прочитать 20...30 последних строк. Как это лучше всего сделать?


 
SeZam   (2004-02-29 19:27) [1]

var
MyText:TStringList;
.
.
MyText.LoadFromFile(FileName);

А дальше делай что хочешь.


 
TAV   (2004-02-29 19:42) [2]

>SeZam
Я понимаю что так можно, но скажем если файл 2 метра, а мне нужно всего лишь последних 20 строк, то использование этого метода будет не очень рациональным. Хочется как-то по умному.


 
Palladin   (2004-02-29 19:47) [3]

строки надо разбирать

у тебя задача проще, с конца 20..30 строк... ну вот и устанавливай позицию на конец и читай кусками разбирая на строки... наберешь сколько тебе надо тут и чтению конец... кто понял молодец кто не понял F1... :)


 
TAV   (2004-02-29 20:05) [4]

> Palladin
Логику понял, а нельзя ли маленький примерчик. Меня интерисует как с конца прочитать какое-то кол-во байт


 
тихий вовочка   (2004-02-29 20:11) [5]

А строки у тебя одинаковой длины? Если нет, то интересно, как ты планируешь скачать пару строк с конца, не зная их позиций? А если про нужное кол-во байт, то лично я использую
CreateFile
SetFilePointer
ReadFile
CloseHandle
И все замечательно работает


 
Palladin   (2004-02-29 20:25) [6]

var
f:file;
buf:array [1..1024] of byte;

assignfile(f,filename);reset(f,1);
seek(f,filesize(f)-sizeof(buf)*(BlockNumberFromEnd)-1);
blockread(f,buf[1],sizeof(buf));


 
TAV   (2004-02-29 20:29) [7]

> тихий вовочка
Да, в том то и дело что строки разной длины, но то что мне нужно прочитать находится между разделитьельными символами "****"

Например:
...
...
********
1...
2...
3...
********
...

И мне нужно прочитать все, что находится между звездочками.
Я думаю можно прочитать какое-то кол-во байт, в которых окажется мне нужная информация, потом дойти до первых "***" и прочитать все до вторых "***". Но не знаю как это реализовать. Может кто подскажет?


 
Palladin   (2004-02-29 20:31) [8]

да как как... при помощи оператора IF THEN [ELSE]...



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

Форум: "Основная";
Текущий архив: 2004.03.14;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.013 c
1-43502
sucer
2004-02-29 06:37
2004.03.14
Помогите с Pchar


6-43707
Кен
2004-01-09 01:56
2004.03.14
WebBrowser Когда кликаешь правой кнопкой на картинке, то в открыв


1-43550
Batoon
2004-02-27 17:30
2004.03.14
работа с LISTBOX ом


3-43270
Zilog
2004-01-23 13:25
2004.03.14
DBGrid - напонятный глюк.


8-43700
Неопытный131
2003-11-15 10:10
2004.03.14
Работа в изображениями





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