|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Sergey Andrianov 2:5020/1507.400 01 Apr 2002 09:04:28 To : Mikhail Kalenkov Subject : Re: структура данных в файле -------------------------------------------------------------------------------- Однажды 29-Mar-02 в 12:33 Mikhail Kalenkov (via gate) написал All по поводу -=- структура данных в файле -=- MK> Есть программа, решающая некоторую сложную задачу методом итераций (это, MK> вообще говоря, для дальнейшего не важно). Так как вычисления длятся часами, MK> то для пущей надёжности я промежуточные данные скидываю в файл. Причём, MK> например, в случае зависания (или отключения компьютера) с помощью данных MK> из этого файла можно стартовать программу с места остановки, а не с самого MK> начала. Данные в файле хранятся в бинарном виде. Структура файла MK> наипримитивнейшая. Просто-напросто все необходимые данные записаны подряд MK> без какой-либо служебной информации. MK> Теперь ВОПРОС. MK> Kак идеологически правильно сохранять данные в файле? MK> Hа текущий момент, если я добавляю новые возможности к программе, то MK> приходится скидывать в файл дополнительные данные, что приводит к полной MK> несовместимости с предыдущими версиями. MK> Решение мне видится в добавлении некоторого заголовка в файл, где записана MK> информация о расположении данных в файле. Hе подскажут ли уважаемые гуру MK> какие доки почитать и куда копать? Уж очень не хочется изобретать MK> велосипед. Hасчет док - не подскажу, но здесь возможно несколько подходов: 1. записывается версия формата и это является исчерпывающей информацией. В случае со многими, особенно ветвящимися, вариантами не очень удобно, зато компактно. 2. резервируются определенные области, которые по мере усложнения формата используются. Здесь опять же, чтобы отличить зарезервированные поля от заполненных следует либо пользоваться версией формата, либо предусмотреть, чтобы заполненое поле не могло принимать то же значение, что и зарезервированное (поэтому иногда удобнее в зарезервированное поле писать -1 чем 0). 3. заголовок имеет переменную длину иерархическую структуру: сначала описывает количество записей, а затем по очереди каждую из записей: тип данных, размерность, размеры, смещение начала в файле, <длину в байтах> и, желательно, текстовую строку-комментарий. 4. часто сочетается способ 2 для простых переменных переменных сл способом 3 для массивов. До свидания, в 08:56 MSK Sergey --- * Origin: Sergiev Posad (2:5020/1507.400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/52053CA8229D.html, оценка из 5, голосов 10
|