![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
чтение из файла [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]читать с конца