TVTablesViewer Открыть

Форматы DBF: версии и чем они отличаются

«Файл DBF» — не один формат, а семейство. За сорок лет его расширяли dBase, FoxPro, Clipper и десятки программ поменьше, и каждая добавляла своё. Отсюда вечная история: файл есть, а программа говорит, что он повреждён.

Обновлено 2026-09-20 · формат DBF

Откуда столько версий

Формат появился в dBase II в начале 1980-х и оказался настолько удобным, что его подхватили конкуренты: FoxBASE и FoxPro, Clipper, позже сотни учётных программ. Общего стандарта не было никогда — каждый производитель расширял формат под свои нужды: новые типы полей, длинные имена, memo-файлы в собственной разметке, NULL-значения.

Основа при этом не менялась: заголовок, описания полей по 32 байта и записи одинаковой длины. Поэтому простую таблицу из дюжины текстовых и числовых полей понимают почти все программы, а сложности начинаются на расширениях. Побайтовая раскладка разобрана в справочнике по структуре DBF, здесь — чем версии отличаются друг от друга.

Основные версии

ВерсияГодыЧто добавилаMemo
dBase III / III+1984–1986классическая основа: типы C, N, D, L, M, до 128 полей.DBT, блоки по 512 байт
FoxBASE / FoxPro 2.x1987–1994совместимость с dBase III плюс свой формат memo и индексы .IDX и .CDX.FPT с заданным размером блока
Clipper1985–1990-екомпилятор программ на языке dBase; таблицы в формате dBase III, индексы .NTX.DBT, у драйвера SIX — .SMT
dBase IV / 51988–1994тип F (число с плавающей точкой), memo с заголовком блока.DBT нового образца
Visual FoxPro1995–2007типы I, T, Y, B, V, Q; NULL-значения; автоинкремент; принадлежность к базе .DBC.FPT, ссылка 4 байтами
dBase Level 71997имена полей до 32 символов, дескрипторы по 48 байт, автоинкремент.DBT

Как узнать версию файла

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

БайтЧто означает
0x02FoxBASE
0x03dBase III и совместимые, без memo — самый распространённый вариант
0x04dBase IV или Level 7 без memo
0x05dBase 5 без memo
0x30, 0x31, 0x32Visual FoxPro: обычная таблица, с автоинкрементом, с полями переменной длины
0x83dBase III с memo
0x7B, 0x8BdBase IV с memo
0xE5Clipper с драйвером SIX, memo в .SMT
0xF5, 0xFBFoxPro 2.x с memo, FoxBASE

Байт говорит о диалекте, но не обо всём. Наличие memo надёжнее проверять по фактическим полям типа M, а dBase Level 7 отличается от dBase IV не байтом, а длиной описаний полей.

Где версии расходятся

Какую версию выбрать для новой таблицы

Если файл готовится для чужой программы — ту, что указана в её требованиях, и никакую другую. Если требований нет, самый совместимый вариант — dBase III без memo: типы C, N, D и L, имена полей до десяти латинских символов, однобайтовая кодировка. Такой файл откроет любая программа, знающая DBF.

Visual FoxPro стоит выбирать, только когда нужны его типы — дата со временем, денежный тип, NULL — и получатель точно их понимает.

Частые вопросы

Чем отличается .dbf от .dbc?

DBF — отдельная таблица. DBC — контейнер базы данных Visual FoxPro: он хранит связи, длинные имена и правила для входящих в него таблиц, но сами данные остаются в .dbf.

Почему файл открывается в одной программе и не открывается в другой?

Чаще всего вторая программа не знает диалекта: например, ждёт dBase III, а получает таблицу Visual FoxPro с полями типа I или T.

Можно ли перевести таблицу из одной версии в другую?

Да, выгрузкой в DBF с нужной структурой. При этом типы, которых нет в целевой версии, придётся заменить — и важно, чтобы инструмент сообщил, что именно заменено.

Файл не покидает ваш компьютер. Разбор идёт в браузере, в фоновом потоке. Политика безопасности страницы запрещает отправлять данные на сторонние адреса — это проверяется в инструментах разработчика. После первого открытия приложение работает и без интернета.
Открыть приложение

Ещё по теме