Форум: "Основная";
Текущий архив: 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