Если вы читаете этот текст, значит, с вашей базой
что-то не в порядке. И если DBF файл можно восстановить
с помощью некоторых программ, то в случае искажения
MEMO полей такие программы ничего сделать не могут.
1. Возможности программы MemoRepair:
1) Информация о MEMO полях
2) Очистка MEMO полей – самый гарантированный способ,
работает 100%
3) Сохранение информации из MEMO и любых других полей
в текстовый файл
4) Загрузка информации в MEMO и любые другие поля
из текстового файла
2. Теория
MEMO поля хранятся в отдельном файле. В главном .dbf файле
указаны только ссылки на место этой записи в этом .fpt
файле. Многие простые dbf просмотрщики/редакторы даже
не показывают этих полей. Если ссылки нарушены, например
.fpt файл от другой базы или испорчен, то ни одна программа
не может правильно прочитать данные. Текст может получиться
огромным или будет содержать куски других записей.
Поэтому удаление ссылок и очистка полей – самый простой
и надёжный способ восстановления .fpt файла. Все остальные
способы предусматривают ручную работу. Возможно, вам повезёт
и испорченной окажется только одна запись, тогда достаточно
будет восстановить только её. Если же нет, то придётся
восстанавливать читаемые записи из ранее сохранённой базы
или вручную.
3. Работа с программой:
В первую очередь вчитайтесь в грозное предупреждение
в начале этого файла. Если у вас есть резервная копия,
восстановите данные из неё напрямую, копируя файл или через
программу. Если копии нет, читайте дальше.
Memo поля нельзя восстановить автоматически!
То, что делает программа – это всего лишь попытка оставить
как можно больше нормальных данных.
Теперь создайте резервные копии .dbf и .fpt файлов – программа этого не делает.
Откройте dbf файл и нажмите кнопку «Инфо», чтобы
вывести список названий MEMO полей.
Программа использует эти поля для очистки, перезаписи
и сохранения. Вы можете удалить из списка поля, которые
программа должна пропустить.
3.1 Перезапись MEMO полей:
Программа может попытаться перезаписать все значения MEMO
полей в конец файла. Попробуйте, может после этого файл
будет открываться нормально. Скорее всего, вся информация
будет искажена.
3.2 Очистка MEMO полей:
Самое простое, что можно сделать, чтобы сохранить информацию
в обычных полях и сразу восстановить работоспособность базы – это очистить «битые» MEMO поля. Естесственно, всю удалённую
информацию из MEMO полей придётся восстанавливать заново.
1) Нажмите кнопку «Инфо»
2) Выберите поля – удалите ненужные
3) Нажмите кнопку «Очистить»
Если галочка «Все» не стоит, то программа очистит только
указанные в списке поля с текстом длиннее 32766 символов – скорее всего, это «битые» значения.
Чтобы программа очистила ВСЕ указанные в списке MEMO поля,
поставьте галочку «Все».
3.3 Сохранение текста из MEMO полей
Вы можете сохранить MEMO поля из ранее сохранённой нормально
читаемой резервной копии и загрузить в текущую базу.
Желательно, чтобы при этом количество записей в новой базе
было столько же или больше. Если записи не сходятся, например
были удалены, сделайте так, чтобы записи сходились.
Вы можете сохранить MEMO поля в текстовый файл из текущей
копии, отредактировать и снова загрузить в текущую базу.
1) Нажмите кнопку «Инфо»
2) Выберите поля – удалите ненужные
3) Нажмите кнопку «Сохранить». Выберите текстовый файл.
Программа в первой строке записывает названия полей,
разделённые табуляторами.
В остальных строках идут текстовые значения полей.
Символы с кодами до 32 (пробел) заменены на их коды,
например символ с кодом #31 явно заменён на текст «#31».
Символ с кодом 0 заменён на пробел.
Вы можете сохранить значения любых полей – добавьте
их названия вручную в список. Это нужно например для сверки.
Также вы можете сравнить поля из двух сохранённых файлов
с помощью какого-либо инструмента сравнения, например,
встроенного в Total Commander.
3.4 Загрузка текста из MEMO полей
1) Нажмите кнопку «Загрузить». Выберите ранее сохранённый
текстовый файл.
Программа сама загрузит текст в нужные поля, указанные
в заголовке файла. Проверьте самостоятельно вручную,
сходится ли количество строк в текстовом и dbf файле.
Вы можете загрузить значения любых полей – добавьте
их названия и значения вручную в файл.
4. Лицензия и отказ от гарантий
Программа распространяется бесплатно. Вы можете пользоваться
и распространять программу каким угодно способом.
Никаких гарантий правильности работы не предоставляется.
Автор не несёт никакой ответственности за причинённый
явный или косвенный ущерб.
Тем не менее, если вы нашли ошибку в программе, сообщите
об этом автору.
5. История развития
20 февраля 2007
MemoRepair 1.1
! Серёзная ошибка – MEMO поля обрезались с конца
на несколько знаков
! Длина строки при чтении неограничена. Теперь читаются
все строки, но записываются только короче, чем
MaxChar=1024*1024 (1 Mb)
3 февраля 2007
MemoRepair 1.0
Первый релиз. Все базовые функции программы.
Скачать программу MemoRepair (7z, ~150 Kb)
|