Всего-то работа с логами ...

From
Alex Astafiev (2:5000/228.16)
To
Stanislav Latishko
Date
2003-01-09T00:49:58Z
Area
RU.ALGORITHMS
 SL>>     Я только не понял - что даст фиксированная длина ? Можно все
 SL>> записи добить пробелами до максимальной - это даст увеличение
 SL>> размеров раза в полтора. За возможность сразу найти запись по
 SL>> номеру - дороговато. Ссылки на "ту же тему" - так ведь "тема"
 SL>> заранее не определена, она выяс- няется уже в процессе просмотра
 SL>> ... А поначалу - валится вся информация, которая _может_
 SL>> содержать что-то "интересное".
 NAS>
 NAS> Не могу себе представить ситуацию, когда 'тема заранее неопределена'.
 NAS> IMHO грабли потеряны где-то рядом. Неужели нельзя например разбить
 NAS> систему "интерфейсами" на "отдельные блоки" и проверить исправности
 NAS> всех блоков поотдельности?

неясно, сколько можно мусолить эту тему.
какой тут может быть еще вариант, кроме как загружать файл по частям (ехать по
нему окном в 100-1000кб) и работать с этой частью?

лог обьемом в несколько GB, а *nix/win32 имеют только 2Gb пользовательского
virtual adress space, да и любая загрузка сходного обьема в память вызовет
всего -лишь перераспределение информации в pagefile (своп).

Используй функции memory-mapped файлов.
Я бы сделал такую абстракцию, чтобы выражать позицию в виде __int64 (или
struct{int pos1; int pos2; } pos;) и ездил бы
себе на здоровье по своему "виртуальному" файлу взад-вперед.
А реализацию виртуального файла бы сделал такой, что она мне "прозрачно"
"кэшировала", смэпливала бы участок в N килобайт. Вот и все дела.

Вопрос лишь в абстрагировании, нужно провести умозрительную, виртуальную черту
в этой системе и с одной стороны этого интерфейса предоставить задавать
позицию, а с другой, конвертировать ее в адрес вида окно,смещение в окне.


---
 * Origin: Фидонет - сеть друзей. Будьте дружественнее! (2:5000/228.16)