|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Џ®ав®ў Њ‚ 2:5020/400 31 Mar 2002 06:30:40 To : Mikhail Kalenkov Subject : Re: структура данных в файле -------------------------------------------------------------------------------- Mikhail Kalenkov <kalenkov@rinet.ru> сообщил в новостях следующее:a81cak$n9n$1@news.rinet.ru... МК> Есть программа, решающая некоторую сложную задачу методом итераций (это, МК> вообще говоря, для дальнейшего не важно). Так как вычисления длятся часами, МК> то для пущей надёжности я промежуточные данные скидываю в файл. Причём, МК> например, в случае зависания (или отключения компьютера) с помощью данных МК> из этого файла можно стартовать программу с места остановки, а не с самого МК> начала. Данные в файле хранятся в бинарном виде. Структура файла МК> наипримитивнейшая. Просто-напросто все необходимые данные записаны подряд МК> без какой-либо служебной информации. МК> МК> Теперь ВОПРОС. МК> МК> Как идеологически правильно сохранять данные в файле? МК> МК> Hа текущий момент, если я добавляю новые возможности к программе, то МК> приходится скидывать в файл дополнительные данные, что приводит к полной МК> несовместимости с предыдущими версиями. МК> МК> Решение мне видится в добавлении некоторого заголовка в файл, где записана МК> информация о расположении данных в файле. Hе подскажут ли уважаемые гуру МК> какие доки почитать и куда копать? Уж очень не хочется изобретать МК> велосипед. Какие доки читать - не подскажу. По моим наблюдениям, ничего хорошего изобретено не было. Что касается задачи, то можно (думаю, что и нужно) обойтись самыми простыми средствами. Просто добавить в начало файла строку, позволяющую идентифицировать версию файла. Это нужно делать всегда. Процедуры, читающие файл - уже написаны и отлажены, пусть будут какие есть. При изменении формата надо просто не редактировать существующие, а добавлять новые - и процедуры, и структуры данных. Все это относится к организации хорошей структуры программы, а не данных в файле. Читать старой программой данные нового формата практически никогда не нужно. Если понадобится - можно всегда за пять минут сделать программу конвертер. Пытаться создать некий универсальный формат конечно можно, но успех достигнут не будет. Такой уж я скептик. Для примера можно посмотреть на системный реестр Windows. Вам это нравится? Успехов! (PMV) --- ifmail v.2.15dev5 * Origin: LEK-Telecom (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/878596b8edd8.html, оценка из 5, голосов 10
|