среда, 7 ноября 2018 г.

Восстановление CLARION3 файлов

Обычно при крахе кларионовские файлы портятся не фатально. Разрушается последняя запись, либо счетчик записей в файле не соответствует действительному количеству записей.
Итак, как же восстановить файл.
Переименовываем битый файл и запускаем приложение. Приложение формирует новый файл, в котором есть только шапка. Запоминаем размер файла - это будет размер шапки. Затем добавляем средствами приложения одну запись. Длина файла увеличивается на размер одной записи.
Открываем DAT файл любым НЕХ редактором. Корректируем количества записей в шапке. Берем целочисленное деление размера файла минус размер шапки на размер одной записи. Это будет число сохранившихся записей. Переводим его в НЕХ формат. В 6,7,8 и 9 (счет от 1) байтах шапки записывается физическое количество записей младшим байтом вперед (перевернуто). Сверяем с записанным и, если надо, то корректируем. Иногда возможно даже прописать на единицу меньшее количество (пожертвуем одной записью). По адресу 0х12-0х13 записан размер одной записи (контролируем свои расчеты).
Теперь средствами Клариона создаем файл-конвертер нашего побитого файла в другой файл с идентичной структурой и натравливаем конвертор на наш файлик. Конвертер при сканировании не использует ключи, а только проходит по файлу в порядке физического расположения записей. Таким образом, конвертер берет из шапки поправленное нами количество записей и переносит в новый файл только эти записи. Последняя битая запись в выборку не попадет.
Таким образом получим нормальный рабочий файл, останется только сверить последние записи.

Комментариев нет:

Отправить комментарий