MEMO-поле каждой записи .DBF-файла содержит номер (значение указывается в кодовой странице OEM), указывающий на блок с хранимыми данными. Если поле не содержит никаких данных, .DBF-файл будет заполнен пробелами (20h) (а не числами).

В случае изменения данных какого-либо поля, блоки могут изменить свои порядковые номера для отображения новой позиции данных в .DBT-файле.

Данная информация взята из справочника по dBASE IV ("dBASE IV Language Reference", Appendix D).

Структура заголовка файла данных для таблицы dBASE 5.0 под DOS.
Заголовок табличного файла
БайтСодержаниеОписание
01-й байтКонтроль файла dBASE под Windows: биты 0-2 указывают номер версии, бит 3 - наличие MEMO-файла dBASE IV или dBASE под Windows, биты 4-6 - наличие dBASE IV SQL-таблицы, бит 7 - наличие любого .DBT MEMO-файла (MEMO-файл таблицы dBASE III Plus, dBASE IV или dBASE под Windows)
1-33 байтаДата последнего обновления в формате YYMMDD
4-732-битное числоКоличество записей в таблице
8-916-битное числоКоличество байтов, занимаемых заголовком
10-1116-битное числоКоличество байтов, занимаемых записью
12-132 байтаЗарезервированная область, заполнена нулями
141 байтФлаг, указывающий на наличие незавершенной транзакции
151 байтФлаг кодировки
16-2712 байтЗарезервированная область для многопользовательского использования
281 байтФлаг наличия MDX-файла: 01H - файл для данной таблицы присутствует, 00H - файл отсутствует
291 байтID драйвера языка
30-312 байтаЗарезервированная область, заполнена нулями
32-nпо 32 байтаМассив с описаниями полей (структура данного массива показана ниже)
n+11 байт0DH в качестве терминатора

n - последний байт массива с описаниями полей. Размер массива зависит от количества полей в табличном файле.

Описание поля таблицы
Байт Содержание Описание
0-10 11 байт Имя поля в ASCII (заполнено нулями).
11 1 байт Тип поля в ASCII (B, C, D, F, G, L, M или N)
12-15 4 байта Зарезервированная область
16 1 байт Размер поля в бинарном формате
17 1 байт Порядковый номер поля в бинарном формате
18-19 2 байта Зарезервированная область
20 1 байт ID рабочей области
21-30 10 байт Зарезервированная область
31 1 байт Флаг MDX-поля: 01H если поле имеет метку индекса в MDX-файле, 00H – нет.
Записи таблицы

Записи в табличном файле располагаются непосредственно за заголовком таблицы. Данным записи предшествует байт, указывающий на удаленность записи: значение 20h (пробел) указывает что запись не удалена, значение 2Ah (звездочка) – запись была удалена. Поля упаковываются записями без разделителей полей или терминаторов записи. Конец файла помечается единственным байтом (с EOF-маркером), OEM-код которого соответствует значению 26 (1Ah). Вы можете ввести данные в кодовой странице OEM как показано ниже.

Перейти на страницу:

Похожие книги