Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

чтение из файла [D7, XP]


Григорий ©   (2009-07-30 09:12:00) 

имеется файл, нужно считать 3 строку с конца.. в файле больше 40000 строк, весит он 30 метров, еще и увеличивается, как можно сделать чтобы быстро работало?


Loginov Dmitry   (2009-07-31 23:07:00) [1]

> как можно сделать чтобы быстро работало?


Открыть с помощью MMF.
Можно воспользоваться готовым классом от Тейксеры с Пачекой:
http://www.delphimaster.ru/cgi-bin/forum.pl?n=6&id=1247596906

и читать побайтно с конца файла, подсчитывая количество переводов строк
(символы #13, #10). Только нужно подобрать атрибуты открытия файла, так,
чтобы затем запись в лог не сбойнула.


Игорь Шевченко   (2009-07-30 19:08:00) [2]


> Как определить МАКСИМАЛЬНЫЙ_РАЗМЕР_СТРОКИ для произвольного
> файла, не читая файл?


"Ну вот у вас, на Земле, как вы определяете - кто перед кем сколько должен присесть?
- Ну, это на глаз..."


Плохиш   (2009-07-30 18:30:00) [3]


> Евгений Р.   (30.07.09 18:08) [10]
>
>

Как определить МАКСИМАЛЬНЫЙ_РАЗМЕР_СТРОКИ для произвольного файла, не читая файл?


Евгений Р.   (2009-07-30 18:08:00) [4]


> Dennis I. Komarov ©   (30.07.09 17:56) [9]
>
>


блок выберите как  МАКСИМАЛЬНЫЙ_РАЗМЕР_СТРОКИ*5 (например)


Dennis I. Komarov   (2009-07-30 17:56:00) [5]


> Евгений Р.   (30.07.09 17:48) [8]

А если там только последняя строка на 10kb?


Евгений Р.   (2009-07-30 17:48:00) [6]

прочитать в массив последний килобайт файла, а затем, сканируя с конца найти 3 последние строки


Anatoly Podgoretsky   (2009-07-30 11:01:00) [7]

И забыть про текстовые файлы, поскольку Seek для них не возможен.


RWolf   (2009-07-30 10:24:00) [8]

Seek + F1


TIF   (2009-07-30 10:24:00) [9]

> как?

http://delphibasics.ru/Seek.php


Григорий   (2009-07-30 10:19:00) [10]


> читать с конца

как?


RWolf   (2009-07-30 10:07:00) [11]


> как можно сделать чтобы быстро работало?

как минимум, периодически дефрагментировать этот файл.


topS   (2009-07-30 09:41:00) [12]

логи и работа с ними вообще организовывается не так


Palladin   (2009-07-30 09:21:00) [13]

читать с конца


Наверх

Титульная страница Поиск, карта сайта Написать письмо