Формат файла dbase iv
Александр Терехов
дата публикации 17-07-2002 15:30
Вступление
Все было бы хорошо, если бы не BDE.
Нет, BDE - это очень даже хорошо, плохо то, что использовав в программе однажды TTable, приходится ломать голову над тем, как же с минимальными потерями "прикрутить" BorlandDatabaseEngine к пользовательской машине. Это первое, что заставляет сесть за изучение заголовков DBF-файлов. И второе. Эти самые DBF-файлы имеют такую особенность, как разрушение заголовков. И третье, и четвертое, и пятое.
Для Вас не составляет сложности написать компонент, который работает с DBF-таблицами?. В этом случае НЕМЕДЛЕННО прекратите чтение статьи!
А мы же посмотрим, что из себя представляют заголовки DBF-файлов и как можно использовать свои знания о них в практическом применении.
RecordSize (размер записи в байтах) и RecordsCount (количество записей), значения которых берутся из заголовка DBF-файла, будут рассмотрены ниже.
Теперь, когда мы знаем из каких частей состоит DBF-файл и какой размер они имеют, перейдем к более подробному рассмотрению их структуры.
- собственно заголовок
- описание полей
- завершающий заголовок символ 0x0D(13)
№ байта | Размер | Значение | Описание | Используется |
---|---|---|---|---|
00 | 11 | ASCII | Имя поля с 0x00 завершением | Все |
11 | 1 | ASCII | Тип поля см. Таблицу 4 | Все |
12 | 4 | n,n,n,n | Адрес поля в памяти | D3 |
0,0,n,n | Смещение относительно начала записи | Fp | ||
0,0,0,0 | Игнорируется | FS, D4, D5, Fb, CL | ||
16 | 1 | Byte | Размер поля см. Таблицу 4 | Все |
17 | 1 | Byte | Количество знаков после запятой | Все |
18 | 2 | 0,0 | Зарезервировано | Все |
20 | 1 | Byte | Идентификатор рабочей области | D4,D5 |
0x00 | Не используется | FS, D3, Fb, Fp, CL | ||
21 | 2 | n,n | Многопользовательский dBase | D3, D4, D5 |
0,0 | Игнорируется | FS Fb, Fp, CL | ||
23 | 1 | 0x01 | Установленные поля | D3, D4, D5 |
0x00 | Игнорируется | FS Fb, Fp, CL | ||
24 | 7 | 0..0 | Зарезервировано | Все |
31 | 1 | 0x01 | Поле включено в .mdx индекс | D4, D5 |
0x00 | Игнорируется | D3, FS, Fb, Fp, CL |
Код | Тип | Размер | Описание/Размер | Используется |
---|---|---|---|---|
C | 1..n | Char | n ASCII символов | Все |
пустые места - пробел 0x20(32) | ||||
n = 1..64Kbt | FS | |||
n = 1..32Kbt | Fp, CL | |||
n = 1..254 | Все | |||
D | 8 | Date | 8 ASCII знаков (0..9) в формате YYYYMMDD | Все |
F | 1..n | Float | ASCII символы(-.0123456789) переменная позиция плавающей точки n = 1..20 | FS, D4, D5, Fp |
N | 1..n | Numeric | ASCII символы (-.0123456789) фиксированная позиция точки | Все |
n = 1..20 | FS, Fp, CL | |||
n = 1..18 | D3, D4, D5, Fb | |||
L | 1 | Logical | ASCII символы (Yy Tt Nn Ff, пробел - не определено) | FS, D3, Fb, Fp, CL |
ASCII символы (Yy Tt Nn Ff, ? - не определено) | D4, D5 (FS) | |||
M | 10 | Memo | 10 цифр, определяющих начало блока данных в .dbt-файле или 10 пробелов, если поле мемо пусто | Все |
V | 10 | Variable | Переменная Bin/ASCII данных в .dbv-файле 4 Bin байтов - начало блока в мемо-файле 4 Bin байтов - размер блока 1 Bin байт - подтип данных 1 Bin байт - зарезервировано 0x1A(26) | FS |
P | 10 | Picture | Binary данные в .ftp-файле структура такая же как и в Memo-типе | Fp |
B | 10 | Binary | Binary данные в .dpt-файле структура такая же как и в Memo-типе | D5 |
G | 10 | General | OLE-объекты структура такая же как и в Memo-типе | D5, Fp |
2 | 2 | short int | Binary int max +/- 32767 | FS |
4 | 4 | long int | Binary int max +/- 2147483647 | FS |
8 | 8 | double | Binary signed double IEEE | FS |
Завершает описание заголовка символ 0x0D(13)
Теперь уже можно сделать кое-какие вычисления. Например, определить количество полей в DBF-файле.
Размер заголовка DBF-файла в байтах составляет:
32+32xN+1 байт, где N - количество полей.
Этот же размер можно извлечь из 8,9 байтов заголовка - HeaderSize
Следовательно количество полей равно:
N:=(HeaderSize-33)/32 байт.
Сместившись на HeaderSize байт от начала файла, мы переходим к непосредственно к самим записям, размер которых указан в 10,11 байтах заголовка - RecordSize , а их количество в 04..07 байтах - RecordsCount .
Структура записи в DBF-файле более простая.
Каждая запись имеет следующую структуру.
№ байта | Размер | Описание | Используется |
---|---|---|---|
0 | 1 | Флаг удаления "*", иначе - пробел | Все |
1 | 1..n | Различные типы полей фиксированной длины без завершающих символов длина поля n определяется в 16 байте структуры описания поля. | Все |
Завершает DBF-файл символ 0x1A(26)
Таким образом, в общем случае запись - это строка символов (кроме FS), состоящая из частей (полей) строго определенного размера. Эти размеры указаны в структуре описания поля в 16-м байте.
- Получить важные сведения о DBF-файле из его первых 32 байтов
- Изменить несколько важных значений DBF-файла:
- изменить языковой драйвер таблицы
- отвязать таблицу от индексного файла
- по желанию - еще что-нибудь
- Определить количество и тип полей в DBF-файле
- Отследить разрушение заголовка DBF-файла путем расчета места нахождения завершающего заголовок символа и сравнения его с 0x0D(13)
- Попытаться восстановить заголовок
- Создать примитивный драйвер работы с DBF-файлом без BDE
- И многое, многое другое.
Небольшой пример
Пример примитивного драйвера работы с DBF-файлом без BDE и возможности изменения заголовка DBF-файла находится в файле DBHeader.zip (7K)
Пример подробно откомментирован, поэтому в тексте статьи приводить его не буду. Тем более что, как говорится, "лучше один раз увидеть".
В качестве полигона можно использовать DBF-таблицы, поставляемые вместе с Delphi: \DelphiX\Demos\Data\*.dbf
В дополнение к материалу: DBFCodePage.zip (1.7K) небольшой перекодировщик (языковой драйвер) ascii ANSI Win 1251 в dBase RUS cp866 и обратно.
Смотрите также материалы по темам: [DBase] [Прямой доступ к БД]
Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
Функция может не работать в некоторых версиях броузеров.
© При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
Все используемые на сайте торговые марки являются собственностью их производителей.
Нет смысла вспоминать историю компьютеризации СССР с 90-х годов прошлого столетия. Есть смысл констатировать тот факт, что и по сей день на предприятиях требующих для управления мощных СУБД, серверов и надежных операционных систем, стоят "файл-серверные" сети из нескольких сотен персоналок, использующие DBF в качестве формата хранения данных, и эксплуатирующие миллионы строк кода разработанного на Clipper или FoxPro.
Альтернативой "файл-серверу" и, надо сказать, весьма заслуженно стал "клиент-сервер". Но, совершенно незаслуженно, недостатки "файл-серверной" архитектуры перекочевали на весь ее инструментарий:
- язык xBASE,
- формат DBF,
- средства разработки Clipper, Clarion и FoxPro.
Как формат данных, язык или средства разработки могут влиять на скорость и надежность вычислений совершенно не понятно. Тем не менее, в рассуждениях о применении тех или иных средств в программировании систем связанных с обработкой баз данных, устойчиво сложился ряд мифов в отношении к DBF и xBASE, развенчать которые не помешало бы.
Миф 1. xBASE == DBF. Это скорее не миф, а заблуждение. Уже выросло целое поколение программистов, которое кроме SQL ничего не знает, а о DBF и xBASE сохранилось смутное воспоминание из курсов теории СУБД. Если рассматривать современные версии xBase - это давно уже не DBF, а и множество других форматов и источников данных, в том числе и SQL,OLE,XML,CORBA. Да и в те недалекие времена xBASE могли намного больше, чем просто управлять форматом DBF.
Формат файла DBF
Таблицы dBASE: Структура .DBF-файла
DBF — формат хранения данных, используемый в качестве одного из стандартных способов хранения и передачи информации системами управления базами данных, электронными таблицами и т. д.
DBF-файл делится на заголовок, в котором хранится информация о структуре базы (в новых версиях — и о некоторых других характеристиках, например используемой кодовой странице) и количестве записей и, собственно, область данных, представляющую собой последовательно организованную таблицу из записей фиксированной длины. Записи, в свою очередь, делятся на поля, также фиксированной длины.
Первое поле всегда — пометка удаления (1 байт). Если оно равно 2A16 (символ «звёздочка»), считается, что запись помечена на удаление. Удалённые записи могут быть восстановлены или физически удалены при выполнении операции «упаковка» (команда PACK xBase).
С DBF-файлами могут быть так же сопряжены другие файлы — .DBT (dBase III, IV,Clipper), .FPT (FoxBASE/FoxPro) и, в некоторых случаях, какие-то ещё, предназначенные для хранения больших объектов переменной длины. .DBT/.FPT-файлы не являются самостоятельными и не могут быть прочитаны без соответствующего им .DBF файла. В связи с этим их описание обычно включают в качестве составной части описания формата .DBF.
DBF-файл состоит из двух частей:
CDBF - вьювер (просмотрщик) и редактор файлов DBF формата
DBF Просмотрщик и Редактор для Windows
Пожалуй, самый удобный редактор баз DBF.
CDBF для Windows с графическим интерфейсом это наиболее мощный и гибкий просмотрщик и редактор, который дает возможность работать с dbf файлами не программируя через знакомый интерфейс Windows. Эта небольшая и удобная утилита поддерживает практически все, что вам нужно для работы с dbf файлами. CDBF может просматривать и редактировать мемо поля в форматах dBase III, dBase IV, FoxPro, Visual FoxPro и dBase Level 7.
Просмотр, редактирование и исправление dbf файлов (включая мемо-поля), печать dbf таблиц и экспортирование информации в разнообразные форматы (TXT, CVS, PRG, XLS, SQL, DBF, XML). Встроенный дизайнер дает вам возможность легко и быстро создавать профессиональный отчеты, базирующиеся на информации в базе данных.
Все функции CDBF работают на порядок быстрее аналогичных программ. Уникальные возможности могут быть расширены благодаря поддержке плагинов.
Это и вьювер и редактор в одной оболочке. В отличие от различніх подобных программ, CDBF не делает различия между режимами просмотра и редактирования - и в том и другом режиме вам доступны любые операции с базой данных. Все функции программы CDBF работают быстрее аналогичных программ.
Программа также позволяет просматривать и редактировать мемо-поля в форматах dBase III, dBase IV, FoxPro и VFP. Тип мемо-полей определяется автоматически.
Пожалуй, самый удобный редактор баз DBF.
CDBF для Windows с графическим интерфейсом это наиболее мощный и гибкий просмотрщик и редактор, который дает возможность работать с dbf файлами не программируя через знакомый интерфейс Windows. Эта небольшая и удобная утилита поддерживает практически все, что вам нужно для работы с dbf файлами. CDBF может просматривать и редактировать мемо поля в форматах dBase III, dBase IV, FoxPro, Visual FoxPro и dBase Level 7.
Просмотр, редактирование и исправление dbf файлов (включая мемо-поля), печать dbf таблиц и экспортирование информации в разнообразные форматы (TXT, CVS, PRG, XLS, SQL, DBF, XML). Встроенный дизайнер дает вам возможность легко и быстро создавать профессиональный отчеты, базирующиеся на информации в базе данных.
Все функции CDBF работают на порядок быстрее аналогичных программ. Уникальные возможности могут быть расширены благодаря поддержке плагинов.
Это и вьювер и редактор в одной оболочке. В отличие от различніх подобных программ, CDBF не делает различия между режимами просмотра и редактирования - и в том и другом режиме вам доступны любые операции с базой данных. Все функции программы CDBF работают быстрее аналогичных программ.
Программа также позволяет просматривать и редактировать мемо-поля в форматах dBase III, dBase IV, FoxPro и VFP. Тип мемо-полей определяется автоматически.
Небольшое описание функций программы:
Меню Файл
- Открыть
Ctrl-O, F3
Открывает существующую базу данных. Допускается открыть несколько одновременно. Если база данных уже открыта, CDBF переключит вас на окно этой базы. - Последние файлы
Показывает список недавно открывавшихся файлов. - Закрыть
Ctrl-W
Закрывает открытую базу данных. - Создать
Ctrl-N, Ctrl-F3
Создает новую базу. - Изменить структуру
Ctrl-F4
Изменяет структуру открытой базы данных. - Обновить
Ctrl-R
Проверяет количество записей, перерисовывает главное окно, переустанавливает фильтр и пересортировывает при необходимости. - Информация о полях
Shift-F2
Показывает информацию о полях базы данных и позволяет вам редактировать заголовки колонок (алиасы). - Информация о базе даных
Alt-F2
Показывает информацию о текущей базе данных. - Сохранить установки
Shift-F9
Сохраняет установки колонок, вычисляемые поля и режимы просмотра базы данных: алиасы, реверсивный режим и т.п. - Печать
Ctrl-P
Позволяет распечатать содержимое базы данных. - Выход
Alt-X, Alt-F4
Выход из программы.
Меню Вид
- Таблица
F2
Просмотр базы данных в режиме "таблица". - Поля
F2
Просмотр базы данных в режиме "поля". - Обратный порядок
Просмотр базы данных в обратном порядке. Некоторые команды не доступны в этом режиме (Удалить, Усечение и т.п.) - Алиасы
Alt-A
Показывать определенные пользователем заголовки вместо реальный имен полей. - Колонки
Alt-F9
Настройка установок полей базы данных. - Мемо
Ctrl-M
Вызвать редактор мемо полей. - Прятать удаленные записи
Ctrl-D
Прятать или показывать записи, помеченные на удаление. - Только для чтения
Включает режим только для чтения. - Ansi кодировка
F12
Устанавливает кодировку ANSI для просмотра базы данных. - OEM кодировка
F12
Устанавливает кодировку OEM для просмотра базы данных. - Кодировка заголовков
Shift-F12- Устанавливает кодировку ANSI для полей.
- Устанавливает кодировку OEM для полей.
- Панель инструментов
Показывает или прячет панель инструментов, которая включает кнопки некоторых наиболее важных команд, такие как Файл-Открыть и т.п. - Настройка панели инструментов
Позволяет настроить панель инструментов по вашему вкусу. - Панель файлов
Показывает или прячет панель файлов, которая содержит имена всех открытых в данный момент файлов и позволяет вам переключаться между ними одним кликом мыши. - Строка состояния
Показывает или прячет строку состояния, которая отображает состояние текущей базы данных и показывает некоторую информацию о базе данных.
Меню Редактирование
Меню Команды
- Добавить
F5
Добавляет пустую запись в конец базы данных.
Shift-F5 добавляет запись без запроса. - Вставить
F6
Вставляет пустую запись перед текущей записью.
Shift-F6 вставляет запись без запросов. - Удалить
F8
Удаляет текущую запись из базы данных.
Shift-F8 удаляет запись без запросов. - Упауовать все
Alt-F8
Упаковывает базу данных: удаляет записи помеченные на удаление. Упаковывается и DBF файл и файл примечаний. - Очистить
Ctrl-F8
Удаляет все записи из базы данных. - Обрезать
Ctrl-F10
Удаляет все записи после текущей до конца абзы данных. - Дублировать текущую запись.
- ДобавитьCtrl-F5
Добавляет запись в конец базы данных и копирует в нее информацию из текущей записи. - ВставитьCtrl-F6
Добавляет запись перед текущей записью и копирует в нее информацию из текущей записи.
- DBF файл
Упаковывает базу данных: удаляет записи помеченные на удаление. Упаковывается только DBF файл. - Файл примечаний
Упаковывает базу данных: удаляет неиспользуемые блоки из файла примечаний.
Меню Инструменты
- Статистика
Ctrl-F2
Суммирует данные по текущему полю. - Калькулятор
Shift-F4
Вызывает калькулятор. Для получения более полной информации смотрите секцию Калькулятор. - Сортировка
Ctrl-S
Сортирует базу данных по одному или нескольким полям. Для получения более полной информации смотрите секцию Сортировка. - Фильтр
Alt-F3
Фильтрует базу данных по заданному критерию. Для получения более полной информации смотрите секцию Фильтр. - Заполнить
Ctrl-L
Заполняет указанное поле заданным значением. Для получения более полной информации смотрите секцию Заполнить. - Экспорт
Ctrl-F9
Экспортирует записи из базы данных в другие форматы. Модули экспорта содержаться во внешних DLL; вы можете написать ваш собственный экспорт в любой формат. Для получения более полной информации смотрите секцию Экспорт. - Шифрование
Позволяет вам зашифровать, расшифровать и работать с шифрованной базой как с обычной базой. Для получения более полной информации смотрите секцию Шифрование. - Все
Позволяет вам пометить на удаление, снять пометку на удаление или инвертировать пометку на удаление для всех записей базы данных. - Группа
Позволяет вам пометить на удаление, снять пометку на удаление или инвертировать пометку на удаление для группы записей базы данных. - Добавить из
Ctrl-A
Добавляет данные из дургого DBF файла или текстового файла. Для получения более полной информации смотрите секцию Добавить из. - Редактор заголовка
Вызывает шестнадцатеричный редактор заголовка текущей базы данных. Для получения более полной информации смотрите секцию Редактор заголовка. - Шестн. панель
Показывает содержимое поля как шестнадцатеричное значение.
Хитрости
- Вы можете выбрать более одного файла в диалоге открытия файлов.
- Каждая база имеет свою собственую кодировку.
- Вы можете изменять Ansi/OEM кодировку с помощью двойного щелчка в строке статуса.
- Вы можете устанавливать или снимать пароль с помощью двойного щелчка в строке статуса.
Формат DBF применяется к текстовым и числовым файлам Системы Управления Базой Данных (СУБД). В стать.
Формат DBF применяется к текстовым и числовым файлам Системы Управления Базой Данных (СУБД). В статье рассмотрим особенности формата и чем открыть DBF файл.
Общее описание формата DBF
DBF расшифровывается как DataBase File. Файлы DBF первоначально использовались в dBase II вплоть до dBase Version IV.
Внутри DBF-файл состоит из заголовка с порядковым номером формата и непосредственно информации в виде таблицы установленного размера.
История возникновения
В 1978 году Уэйн Рэтлифф запустил проект формата для СУБД Vulcan. В следующем году программа Вулкан в составе с первой сборкой формата DBF поступила в продажу.
Затем в 1980 году Вулкан получил другое название – dBase II. В программе стала применяться вторая ревизия формата. Право продажи получила фирма Ashton−Tate.
Далее последовали сборки dBase III и dBase III+, использовавшие третью версию DBF. Программы оказались несовместимы по размеру.
Последний (седьмой) вариант формата появился вместе с dBase 7 for Windows.
Как и чем открыть файл DBF расширения
Мы подготовили список инструментов, чем открыть DBF в программе Excel или просмотреть онлайн.
Как открыть формат DBF в Excel
Начнем с электронных таблиц Excel. Программа входит в офисный пакет Microsoft и в ней присутствует функция чтения формата DBF.
Если на компьютере не установлен пакет Office, то скачайте дистрибутив с сайта Microsoft и установите нужные программы.
Чтобы открыть файл DBF в таблице Excel:
- нажмите на документ правой кнопкой мыши, чтобы вызвать контекстное меню;
- наведите курсор мыши на «Открыть» с помощью и переходите в пункт Выбрать программу;
- выберите Microsoft Office Excel, нажмите «Ок»;
- нужный файл откроется в виде таблицы Excel.
Открываем расширение DBF онлайн
Открывается файл формата DBF и на веб-сайте Jobtools. Правда, без редактирования.
Чтобы попасть на страницу просмотрщика:
Файл отобразится в окне браузера.
Интерфейс простой, нет опций кроме просмотра и постраничной прокрутки.
Чтобы открыть другой файл, нажмите кнопку «Reset» и повторите загрузку.
Чем открыть DBF на компьютере
Кроме стандартного Офиса открываются и правятся файлы DBF через сторонние программы.
Приложение DBF Commander предоставляет распространенные операции с файлами DBF: просмотр, редактура и распечатка файлов. Поддерживается экспорт в форматы CSV, XML, HTML и Excel. Файл кодируется и декодируется алгоритмом AES-256 (Rijndael). Записи удаляются и восстанавливаются, доступна сборка таблицы.
Какие могут быть проблемы с DBF файлом
Случается, что при попытке открыть файл с расширением DBF программа выбивает ошибку File not found (Файл не найден).
В этом случае откройте файл в другой программе. Подойдет Advantage Data Base. Создайте таблицу, импортируйте исходный файл и поменяйте компоненты.
Другой выход – конвертируйте в текстовый формат doc, docx или exl и откройте в офисной программе.
Следующий тип ошибки – file or table does not exist. Это значит, что файл оказался в папке с временной копией. Откройте папку и задайте значение TSession. для переменной Session.PrivateDir.
Если программа выбивает ошибку Table Level Changed,значит,несовместимы компоненты. Установите компоненты TTable. Проверьте, правильно ли связаны файл DBF и хранилище pft.
Если не открывается файл при подключении к базе, откройте соединение и задайте новое имя OleDbCommand cmd = new OleDbCommand ("SELECT * FROM Employees") с расширением DBF.
DBF – файловый формат, созданный для работы с базами данных, отчетами и электронными таблицами. Его структура состоит из заголовка, в котором описывается содержимое, и основной части, где находится весь контент в табличном виде. Отличительная черта этого расширения – возможность взаимодействия с большинством систем управления баз данных.
Программы для открытия
Рассмотрим софт поддерживающий просмотр данного формата.
Способ 1: DBF Commander
DBF Commander — многофункциональное приложение для обработки DBF файлов различных кодировок, позволяет производить базовые манипуляции с документами. Распространяется платно, но имеет пробный период.
-
Нажмите на вторую пиктограмму или воспользуйтесь сочетанием клавиш Ctrl + O.
Способ 2: DBF Viewer Plus
DBF Viewer Plus – бесплатный инструмент для просмотра и редактирования DBF, простой и удобный интерфейс представлен на английском языке. Имеет функцию создания собственных таблиц, не требует инсталляции.
-
Выберите первую пиктограмму «Open».
Способ 3: DBF Viewer 2000
DBF Viewer 2000 — программа с довольно упрощённым интерфейсом, позволяет работать с файлами объёмом более 2 ГБ. Имеет русский язык и пробный период использования.
-
В меню кликните на первую пиктограмму или воспользуйтесь вышеупомянутым сочетанием Ctrl + O.
Способ 4: CDBF
CDBF — мощный способ редактирования и просмотра баз данных, также позволяет создавать отчеты. Расширить функционал можно, используя дополнительные плагины. Присутствует русский язык, распространяется платно, однако имеет триал версию.
-
Нажмите на первую иконку под надписью «File».
Способ 5: Microsoft Excel
Excel — один из компонентов пакета программ Microsoft Office, хорошо известного большинству пользователей.
-
В левом меню перейдите во вкладку «Открыть», нажмите «Обзор».
Заключение
Мы рассмотрели основные способы открытия DBF документов. Из подборки выделяется лишь DBF Viewer Plus — полностью бесплатное ПО, в отличие от остальных, которые распространяются на платной основе и имеют только пробный период.
Мы рады, что смогли помочь Вам в решении проблемы.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.
Читайте также:
- ДобавитьCtrl-F5