Читать интересную книгу Советы по Delphi. Версия 1.0.6 - Валентин Озеров

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 8 9 10 11 12 13 14 15 16 ... 21

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

Описание поля таблицы Байт Содержание Описание 0-10 11 байт Имя поля в ASCII (заполнено нулями). 11 1 байт Тип поля в ASCII (C, D, F, 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).

Допустимый тип данных таблиц dBASE Тип данных Возможные значения C (Символы) Все символы кодовой страницы OEM D (Дата) Числа и символ-разделитель для месяца, дня и года (внутренний формат записи – 8 цифр в формате YYYYMMDD) F (Бинарные числа с плавающей точкой) – . 0 1 2 3 4 5 6 7 8 9 N (Числовой) – . 0 1 2 3 4 5 6 7 8 9 L (Логический) ? Y y N n T t F f (? – не инициализировано) M (Мемо) Все символы кодовой страницы OEM (внутренний формат записи – 10 цифр, содержащих номер .DBT-блока) Memo-поля и .DBT-файлы

MEMO-поля хранят данные в .DBT-файлах, состоящих из перечисляемых последовательных блоков (0, 1, 2 и т.д.). Переменная BLOCKSIZE определяет размер каждого блока. Первый блок в .DBT-файле (нулевой блок) – заголовок .DBT-файла.

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

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

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

Структура заголовка файла данных для таблицы dBASE 5.0 под DOS. Заголовок табличного файла Байт Содержание Описание 0 1-й байт Контроль файла 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-3 3 байта Дата последнего обновления в формате YYMMDD 4-7 32-битное число Количество записей в таблице 8-9 16-битное число Количество байтов, занимаемых заголовком 10-11 16-битное число Количество байтов, занимаемых записью 12-13 2 байта Зарезервированная область, заполнена нулями 14 1 байт Флаг, указывающий на наличие незавершенной транзакции 15 1 байт Флаг кодировки 16-27 12 байт Зарезервированная область для многопользовательского использования 28 1 байт Флаг наличия MDX-файла: 01H - файл для данной таблицы присутствует, 00H - файл отсутствует 29 1 байт ID драйвера языка 30-31 2 байта Зарезервированная область, заполнена нулями 32-n по 32 байта Массив с описаниями полей (структура данного массива показана ниже) n+1 1 байт 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 как показано ниже.

Допустимый тип данных таблиц dBASE Тип данных Возможные значения C (Символы) Все символы кодовой страницы OEM D (Дата) Числа и символ-разделитель для месяца, дня и года (внутренний формат записи – 8 цифр в формате YYYYMMDD) F (Бинарные числа с плавающей точкой) – . 0 1 2 3 4 5 6 7 8 9 N (Числовой) – . 0 1 2 3 4 5 6 7 8 9 L (Логический) ? Y y N n T t F f (? – не инициализировано) M (Мемо) Все символы кодовой страницы OEM (внутренний формат записи – 10 цифр, содержащих номер .DBT-блока) MEMO-поля и .DBT-файлы

MEMO-поля хранят данные в .DBT-файлах, состоящих из перечисляемых последовательных блоков (0, 1, 2 и т.д.). Переменная BLOCKSIZE определяет размер каждого блока. Первый блок в .DBT-файле (нулевой блок) – заголовок .DBT-файла.

1 ... 8 9 10 11 12 13 14 15 16 ... 21
На этом сайте Вы можете читать книги онлайн бесплатно русская версия Советы по Delphi. Версия 1.0.6 - Валентин Озеров.
Книги, аналогичгные Советы по Delphi. Версия 1.0.6 - Валентин Озеров

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