Формат файла не dbf

Обновлено: 05.07.2024


Примечание. Если не указано "0x", все числа, указанные в столбце "Описание" следующих таблиц, являются десятичными.

1.1 Заголовок файла таблицы


Байт Содержание Описание
0 1 байт Действительный dBASE для файла таблицы Windows, биты 0-2 указывают номер версии: 3 для dBASE уровня 5, 4 для dBASE уровня 7.

n выше — это последний байт в массиве дескрипторов полей. Размер массива зависит от количества полей в табличном файле.

<Н3>1. 2 Массив дескрипторов полей

1.3 Структура свойств полей

1.3.1 Стандартный массив дескрипторов свойств и ограничений

1.3.2 Массив дескрипторов пользовательских свойств

1.3.3 Массив дескрипторов свойств ссылочной целостности

(Иностранные = в другой таблице, Местные = в этой таблице)

Данные о собственности

Для стандартных свойств все сохраняется точно так же, как и в записях таблицы. Данные настраиваемого свойства сохраняются в виде строки имени, за которой сразу следует строка значения и завершающий нуль. Текст ограничения хранится в виде строки с завершающим нулем.

Записи таблицы

Записи следуют за заголовком в табличном файле. Записям данных предшествует один байт, то есть пробел (0x20), если запись не удалена, звездочка (0x2A), если запись удалена. Поля упаковываются в записи без разделителей полей или разделителей записей. Конец файла отмечается одним байтом с маркером конца файла, значением символа кодовой страницы OEM, равным 26 (0x1A).

Хранение типов данных dBASE

За исключением полей автоинкремента, все типы инициализируются двоичными нулями. Кроме того, любые поля, которым назначено свойство по умолчанию, будут содержать значение по умолчанию.
< /TR> < TD>Число хранится в виде строки с выравниванием по правому краю и дополнено пробелами по ширине поля.
Символ Тип данных Описание
B Двоичный, строка 10 цифр, представляющая номер блока .DBT. Число сохраняется в виде строки, выровненной по правому краю и дополненной пробелами.
C Символ Все символы кодовой страницы OEM - дополнены пробелами по ширине поля.
D Дата 8 байт - дата хранится в виде строки в формате ГГГГММДД.
N Числовой
L Логический 1 байт — инициализируется значением 0x20 (пробел), иначе T или F.
M Memo, строка 10 цифр (байтов), представляющая номер блока .DBT. Число сохраняется в виде строки, выровненной по правому краю и дополненной пробелами.
@ Временная метка 8 байт - два длинных, первый для даты, второй для времени. Дата - количество дней с 01.01.4713 г. до н.э. Время в часах * 3600000L + минуты * 60000L + секунды * 1000L
I Long 4 байт. Крайний левый бит используется для обозначения знака, отрицательный 0.
+ Автоинкремент То же, что и Long
F Float Число, сохраненное в виде строки, выровненное по правому краю и дополненное пробелами для ширина поля.
O Double 8 байт — без преобразований, хранится как двойной.
G OLE 10 цифр (байтов), представляющих номер блока .DBT . Число хранится в виде строки, выровненной по правому краю и дополненной пробелами.

Двоичные файлы, поля Memo, поля OLE и файлы .DBT

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

Каждое двоичное, памятное или OLE-поле каждой записи в файле .DBF содержит номер блока (в значениях кодовой страницы OEM), где фактически начинаются данные поля. Если поле не содержит данных, файл .DBF содержит пробелы (0x20), а не число.

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

Тим Фишер имеет более чем 30-летний опыт работы в сфере технологий. Он пишет о технологиях более двух десятилетий и является вице-президентом и генеральным директором Lifewire.

В этой статье

Перейти к разделу

Что нужно знать

  • Файл DBF больше всего похож на файл базы данных.
  • Откройте один с помощью dBase, Excel или Access.
  • Преобразование в форматы CSV или Excel с помощью тех же программ.

В этой статье описываются файлы DBF, в том числе способы их открытия и сохранения в другом формате, например CSV, XLS и т. д.

Что такое файл DBF?

Файл с расширением .DBF, скорее всего, является файлом базы данных, используемым системой управления данными dBASE. Данные хранятся в файле в виде массива с несколькими записями и полями.

Поскольку файловая структура довольно проста, а формат использовался на раннем этапе, когда впервые появились программы баз данных, он считается стандартным форматом для структурированных данных.

Esri ArcInfo также хранит данные в файлах, оканчивающихся на .DBF, но вместо этого он называется форматом атрибут шейп-файла. Эти файлы используют формат dBASE для хранения атрибутов фигур.

Свободные таблицы, созданные Microsoft Visual FoxPro, также сохраняются в виде файлов с этим расширением. Как ни странно, файлы базы данных, используемые этой программой, сохраняются как файлы DBC. На сайте Microsoft есть дополнительная информация о терминологии Visual FoxPro.

Файлы DBF

Как открыть файлы DBF

dBASE — это основная программа, используемая для открытия файлов DBF. Однако формат файла поддерживается и другими базами данных и приложениями, связанными с базами данных, такими как Microsoft Access и Excel, Quattro Pro (часть Corel WordPerfect Office), OpenOffice Calc, LibreOffice Calc, HiBase Group DBF Viewer, Astersoft DBF Manager, DBF. Viewer Plus, DBFView и Alpha Software Alpha Anywhere.

Вы должны сохранить файлы базы данных Microsoft Works в формате dBASE, если хотите открыть их в Microsoft Excel.

GTK DBF Editor — это бесплатная программа для открытия DBF для macOS и Linux, но NeoOffice (для Mac), multisoft FlagShip (Linux) и OpenOffice также работают.

Режим Xbase можно использовать с Emacs для чтения файлов xBase.

ArcInfo от ArcGIS использует файлы DBF в формате файла атрибутов шейп-файла.

Программное обеспечение базы данных Microsoft Visual FoxPro, выпуск которого прекращен, — еще один способ открыть эти файлы.

Как преобразовать файл DBF

Большинство вышеперечисленных программ, которые могут открывать или редактировать файлы этого типа, скорее всего, также могут их преобразовывать. Например, Excel может сохранить файл в любом формате, поддерживаемом этой программой, таком как CSV, XLSX, XLS, PDF и т. д.

Та же компания, которая выпускает упомянутое выше средство просмотра DBF, также имеет конвертер DBF, который преобразует файл в форматы CSV, Excel, такие как XLSX и XLS, обычный текст, SQL, HTM, PRG, XML, RTF, SDF и TSV. .

В бесплатной пробной версии DBF Converter может экспортировать только 50 записей. Вы можете перейти на платную версию, если вам нужно больше экспортировать.

dbfUtilities экспортирует DBF в форматы JSON, CSV, XML и Excel. Он работает с помощью инструмента dbfExport, включенного в набор dbfUtilities.

Все еще не можете открыть файл?

Если ваш файл не открывается в соответствии с приведенными выше предложениями, еще раз проверьте расширение файла, чтобы убедиться, что оно действительно читается как DBF. Некоторые форматы файлов используют расширение, которое пишется так же, как и другие, даже если форматы совершенно не связаны друг с другом.

Одним из примеров является DBX. Это могут быть файлы папки электронной почты Outlook Express или файлы расширения базы данных AutoCAD, но в любом случае их нельзя открыть с помощью тех же инструментов, упомянутых выше. Если ваш файл не открывается с помощью этих программ базы данных, убедитесь, что на самом деле вы не имеете дело с файлом DBX.

Если у вас действительно есть файл DBK, он может быть в формате файла резервной копии мобильного телефона Sony Ericsson. Вероятно, его можно открыть с помощью такого инструмента, как 7-Zip, но он не будет работать с приложениями базы данных, указанными выше.

Другие примеры расширений файлов, которые вы можете легко спутать с этим, включают DB, DBA, PDB и MDE.

Дополнительная информация о dBASE

Файлы DBF часто встречаются с текстовыми файлами, использующими расширение файла .DBT или .FPT. Их цель — описать базу данных с помощью заметок или заметок в виде необработанного текста, который легко читать.

Файлы NDX представляют собой файлы единого индекса, в которых хранится информация о полях и о том, как должна быть структурирована база данных; он может содержать один индекс. Файлы MDX представляют собой файлы с несколькими индексами, которые могут содержать до 48 индексов.

Все подробности о заголовке формата файла можно найти на веб-сайте dBASE.

Выпуск dBASE в 1980 году сделал ее разработчика Ashton-Tate одним из крупнейших издателей программного обеспечения для бизнеса на рынке. Первоначально он работал только в операционной системе микрокомпьютера CP/M, но вскоре был перенесен на DOS, UNIX и VMS.

Позже в том же десятилетии другие компании, в том числе FoxPro и Clipper, начали выпускать собственные версии dBASE.Это привело к выпуску dBASE IV, который появился примерно в то же время, что и SQL (язык структурированных запросов) и растущему использованию Microsoft Windows.

К началу 1990-х годов, когда продукты xBase все еще были достаточно популярны, чтобы быть лидером в области бизнес-приложений, три ведущие фирмы, Ashton-Tate, Fox Software и Nantucket, были приобретены соответственно Borland, Microsoft и Computer Associates.

DBF также является сокращением от ряда технических терминов, которые не имеют ничего общего с форматами файлов, обсуждаемыми на этой странице. Некоторые примеры включают цифровое формирование луча, двухбайтовый шрифт и распределенный алгоритм Беллмана-Форда.

Файл с DBF содержит структурированную базу данных, организованную в виде таблиц с записями. Формат был разработан в 1983 году для приложения базы данных dBase II. Формат DBF был разработан для облегчения обмена данными между различными приложениями. Всего было выпущено семь версий формата DBF, и каждая итерация добавляла новые функции и изменения. Из-за различий версий формата DBF не все приложения могут открыть данный файл DBF. Формат DBF не имеет официальной общедоступной документации.

Заголовок файла DBF содержит информацию о связанной базе данных, сохраненную в двоичном формате. Заголовок содержит такую ​​информацию, как:

  1. Версия файла,
  2. Дата последнего обновления базы данных,
  3. Количество записей — 32-битное число,
  4. Длина заголовка и длина поля записи,
  5. Используется шифрование,
  6. Описания полей базы данных в виде таблицы.

После сохранения заголовка, записанного в текстовом или двоичном формате ASCII. Поля записи должны иметь постоянную длину. Когда запись удаляется из базы данных приложением, ее поле заполняется нулями. Новые записи, зарегистрированные в базе данных, добавляются в конец файла, увеличивая его размер (зависит от реализации). Иногда ранее удаленные записи перезаписываются новыми записями. DBT — это версия файла DBF, используемая программными приложениями xBase для хранения данных с плавающей запятой — двоичных данных, заметок или объектов OLE.

Файлы DBF также можно открывать с помощью специальных средств просмотра DBF. Такие инструменты позволяют пользователям просматривать содержимое файла в удобочитаемой форме. Файлы DBF не следует открывать в текстовом редакторе, так как они могут содержать двоичные данные.

Программы, поддерживающие расширение файла DBF

Ниже вы найдете указатель программ, которые можно использовать для открытия файлов DBF, разделенных на 4 категории в соответствии с поддерживаемой системной платформой. Файлы DBF можно встретить на всех системных платформах, включая мобильные, но нет гарантии, что каждая из них будет должным образом поддерживать такие файлы.

Этот форум перенесен в раздел вопросов и ответов Майкрософт. Посетите Microsoft Q&A, чтобы публиковать новые вопросы.

Отвечает:

Вопрос

Я создал файл ".dbf" из SSIS, прочитав данные из файла Excel. Этот файл создан в FoxPro версии 9.0.

Когда я попытался открыть файл .dbf в версии Excel 2016, я получил сообщение об ошибке, как показано ниже.

"Формат файла и расширение "ABCD.dbf" не совпадают. Файл может быть поврежден или небезопасен. Если вы не доверяете его источнику, не открывайте его. Вы все равно хотите его открыть?"< /p>

Может кто сталкивался с такой проблемой. Пожалуйста, помогите мне решить эту проблему.

Ответы

Excel не может читать файлы dbf, созданные с помощью драйвера ODBC VFP6 или поставщика OLEDB VFP9 (и эти два драйвера — единственные официальные средства, используемые MS для чтения или создания dbf). Excel может работать только с устаревшими файлами dbf.

Когда вы начинаете работу с SSIS, каковы ваши исходные данные и какова ваша цель?

Когда вы говорите "чтение данных из файла Excel", вы используете SSIS для чтения из XLS в DBF? А вы потом пытаетесь сверить данные в DBF с excel по сравнению с исходным файлом excel? Вы хотите сделать круговое преобразование файлов?

Между прочим, несмотря на то, что сообщение звучит тревожно, я также получаю это от создания обычного DBF с самим VFP9, который полностью в порядке, не заражен и не имеет других небезопасных частей, я могу проверить это с помощью шестнадцатеричного редактора VFP.

>

Если вашей целью является создание dbf-файлов VFP9 для использования в VFP, вы, скорее всего, уже добились успеха, и единственная проблема, которая у вас может возникнуть, — это проверка созданных вами файлов без наличия VFP. Что ж, вы можете определить источник OLEDB и прочитать вновь созданный DBF обратно в таблицу SQL Server, например, это должно сработать нормально.

Кроме того, гораздо больше инструментов, чем просто VFP, могут извлекать данные из таблицы SQL Server и помещать их в лист Excel, если это ваша конечная цель. Например, вы можете просто определить цель для результатов запроса в SSMS как текстовые файлы:


Это также лишь один из многих способов создания текстов CSV, легко читаемых Excel.

Вы можете подключить Excel и получить доступ к SQL Server, я не знаю, почему вы настаиваете на файлах DBF для этих двух конечных клиентских приложений.

Кроме того, пока вы не показываете код или блок-схему того, что вы делаете и используете, я не могу судить или оптимизировать это.

Для Excel решение состоит в том, чтобы создать файлы CSV, для Access предоставить им соединение и код для чтения данных. Excel умеет читать только современные DBF, если вы игнорируете некоторый «мусор» из заголовка DBF, а все типы полей являются просто символами, DBF — это двоичный формат, а не текстовый формат, любое использование с импортом — это чтение файлов только как текст, не преобразовывать любые двоичные типы данных в их текстовое представление. Итак, опять же, вам лучше выводить CSV вместо DBF.

Я имею в виду, что если большинство полей являются символьными полями, это выглядит как успех, чтобы импортировать их в Excel, воздействуя на DBF как текстовый файл с разделителями табуляцией/пробелом с его мастером импорта, как основную часть dbf тогда только тексты. Но основная часть данных dbfs организована в виде записей фиксированного размера (recsize) без перевода строки. Один дополнительный байт — это пробел или «*», обозначающий, когда запись помечена для удаления. В любом случае, вы не делаете себе одолжение при использовании DBF для импорта данных в Excel, если только вам не удастся создать устаревшие DBF. Но если они не являются вашей отправной точкой, я не знаю, почему вы вообще пытаетесь пойти по этому пути, ведь существует так много более простых форматов для Excel.

Access также может использовать поставщиков ODBC (хотя и устаревших) или OLEDB, чтобы использовать DBF в качестве связанной таблицы или импортировать ее в таблицы доступа. Спросите об этом на форуме Access, шаги одинаковы, независимо от того, какие удаленные данные используются, я могу помочь, вам нужен поставщик VFP OLEDB для этого, если ваш источник DBF, но я до сих пор не понимаю, что такое ваш основной источник , и думали ли вы, что DBF — это прекрасный формат файлов, который можно использовать как в Access, так и в Excel.

Читайте также: