Категория: Windows: Работа с DBF
October 18, 2015
Сегодня, наверное, никому не нужно говорить о том, что достаточно часто многие пользователи сталкиваются с файлами, имеющими расширение .dbf. Что самое печальное, в ОС Windows даже при наличии установленного пакета Microsoft Office данному типу файлов не сопоставлена ни одна программа. Имеем файл DBF. Чем открыть его, мы сейчас и попытаемся разобраться. Заодно посмотрим, как можно установить ассоциацию расширения для последующего автоматического распознавания данных и открытия искомого файла.
Формат DBF: описаниеСобственно, из самого сокращения, применяемого к расширению файла такого типа, уже можно сделать вывод о том, что это база данных. Она является несколько специфичной, поскольку обычно такие файлы имеют расширение .db (Data Base).
В данном случае мы имеем другой тип данных, который, правда, несмотря на свою специфичность, распознается многими программами, поддерживающими работу с информацией такого типа. Это может быть тот же Excel или Access, входящие в состав основного пакета Microsoft Office, или любые другие офисные приложение от сторонних разработчиков.
Чем открывать DBF в стандартном вариантеНа самом деле, если вы вдруг встретили файл такого типа (иконка даже в «Проводнике» на нем не используется), не стоит впадать в панику. Совершенно элементарно его можно открыть при помощи программы Excel, поскольку именно в ней сохраняется вся логическая структура и форматирование текста с учетом тех же перекрестных ссылок и возможности применения стандартной системы поиска.
Как уже понятно, проблема, чем открывать DBF-файл, в нашем случае сводится только к использованию стандартного офисного приложения в ручном режиме. Как уже понятно, такой способ не всегда удобен и требует определенных затрат по времени.
Сопутствующие программыТеперь посмотрим на сам файл DBF. Чем открыть его без использования программ стандартного офисного пакета? Да теми же утилитами, входящими в состав аналогичных программных продуктов.
К примеру, это может быть тот же Open Office, Lotus и т. д. В принципе, особой разницы здесь нет, поскольку роль играет только то, что применяемая программа способна работать с табличными электронными данными. Чтение формата DBF во всех случаях производится абсолютно одинаково. Кстати, это не зависит от разработчика офисного пакета, поскольку у всех имеется поддержка данных такого типа, включая даже платформы типа Oracle.
Изменение параметров открытия по умолчаниюА сейчас посмотрим, чем открывать DBF-файлы так, чтобы использовался автоматический режим. В простейшем случае делается это из субменю, вызываемого правым кликом на файле в обычном «Проводнике», где выбирается команда «Открыть с помощью…».
Для единичного случая используется одно из приложений, указанных в списке. Для того чтобы повторно не ломать себе голову насчет того, чем открывать DBF-файлы, можно просто указать выбранное приложение, а затем снизу поставить «птичку» напротив строки «Использовать для всех файлов такого типа». Тот же Excel в дальнейшем (если он выбран в качестве программы по умолчанию) будет открывать файл этого типа при обычном двойном клике.
Само собой разумеется, что вместо приложения Excel можно выбрать тот же Access или другие программы, способные распознавать и открывать данные такого типа. Суть не в этом. Главное – настроить автоматическое открытие базы данных. Ну а с чем работать в плане программного обеспечения, это уже дело каждого конкретного пользователя компьютерной системы.
Что в итоге?Подводя итог, стоит сказать, что оптимальным вариантом при открытии файлов такого типа является, естественно, офисный пакет от корпорации Microsoft, поскольку именно он является наиболее распространенным во всем мире. Правда, нет и ничего страшного в том, что юзер, не использующий продукцию Microsoft, откроет данные этого типа в любом другом приложении.
Как уже понятно из всего вышесказанного, табличные редакторы присутствуют практически во всех сегодня известных пакетах. Разниться между собой они могут разве что по называнию, а уж никак не по функциональному набору, который, как правило, везде одинаков, за редким исключением.
Кроме всего прочего, соответственно, можно использовать и многие средства разработки с применением достаточно большого количества языков программирования. На той же платформе, поддерживающей создание и оптимизацию SQL-серверов, такие файлы открываются, что называется, в момент. При открытии они будут иметь достаточно специфичный вид, что обычному юзеру несколько непривычно. Впрочем, большинство пользователей вряд ли станут применять такие профессиональные средства разработки, и ограничатся только стандартным программным набором.
Snake.043™ Просветленный (31980) 3 года назад
Описание расширения .dbf, чем открыть файл dbfФормат файла .dbf #1 (наиболее вероятный)
Остальные ответы
Nick Просветленный (25257) 3 года назад
это или файл базы данных или файл от Microsoft Visual FoxPro.
Тимофей Мефодьев Профи (509) 3 года назад
DBF — устаревающий формат хранения данных, используемый в качестве одного из стандартных способов хранения и передачи информации системами управления базами данных, электронными таблицами и т. д.
DBF View - бесплатная, компактная и удобная програма для работы с DBF файлами. Не требует инсталляции, работает без дополнительных драйверов и библиотек.
Главное преимущество это универсальность, быстрый и гибкий линейный поиск, который по скорости превосходит многие SQL.
Дополнительные возможности:
Поиск по маске типа "м? ска"
Редактирование, замена, удаление, создание, добавление данных
Сортирование полей
Мультиязычность и создание новых словарей
Импорт и экспорт DBF, TXT, CSV, SQL, XML
Перекодировки в DOS, Windows, траслит и другие
Автозагрузка баз данных из определенной директории
Файл базы данных состоит из записи заголовка и записей с данными. В записи заголовка определяется структура базы данных и содержится вся другая информация, относящаяся к базе данных. В файле она начинается с нулевой позиции.
Записи с данными (*) следуют за заголовком (байты располагаются последовательно) и включают в себя фактическое содержимое полей. Длина записи (в байтах) определяется суммированием указанных длин всех полей. Числа в данном файле размещаются в обратном порядке.
Примечания по структуре файла с данными.
(*) Данные в файле с данными начинаются с позиции, указываемой в записи заголовка в байтах 08-09. Записи с данными начинаются с байта, содержащего признак удаления. Если в этот байт занесен пробел в коде ASCII (0х20), то запись не удалялась; если же в первом байте - звездочка (0х2A), то запись удалена. За признаком удаления следуют данные из полей, названия которых находятся в подзаписях полей.
(**) Количество полей определяет число подзаписей полей. В базе данных для каждого поля существует одна подзапись поля.
(***) Ограничения по количеству знаков в записи, максимальному числу полей и т.д. смотрите в данном приложении в таблице "Системные возможности".
Сообщения: 2
Написание функций чтения/записи в DBF-файл (как в модуле php_dbase.dll)
Вот такой занимаюсь задачей - необходимо написать функции для чтения/записи/удаления/замены данных в DBF-файлах.
Есть в php стандартный модуль - php_dbase.dll он может следующее:
dbase_numrecords -- Find out how many records are in a dBase database
dbase_get_record_with_names -- Gets a record from a dBase database as an associative array
dbase_get_record -- Gets a record from a dBase database
dbase_add_record -- Add a record to a dBase database
dbase_replace_record -- Replace a record in a dBase database
dbase_delete_record -- Deletes a record from a dBase database
dbase_create -- Creates a dBase database
dbase_pack -- Packs a dBase database
dbase_open -- Opens a dBase database
dbase_close -- Close a dBase database
dbase_get_header_info -- Get the header info of a dBase database
dbase_numfields -- Find out how many fields are in a dBase database
Считать количество записей, считывать, записывать, заменять записи и т.д.
Проблема вот в чём - поддержка этого модуля невозможна на серверах с ОС FREEBSD. Поэтому мне хочется написать такие же функции, выполняющие тоже самое и подключать их на тех хостингах, где нет поддержки этого модуля.
Вот что уже получилось написать:
$goon = true ;
$unpackString = '' ;
while ( $goon &&. feof ( $fdbf )) < // read fields:
$buf = fread ( $fdbf. 32 );
if ( substr ( $buf. 0. 1 )== chr ( 13 )) < $goon = false ;> // end of field list
$field = unpack ( "a11fieldname/A1fieldtype/Voffset/Cfieldlen/Cfielddec". substr ( $buf. 0. 18 ));
$unpackString .= "A $field [ fieldlen ] $field [ fieldname ] /" ;
Часто в поиске вижу запрос: "чтение DBF в Delphi", "работа с DBF в Delphi".
Такая насущная проблема действительно существует, особенно у начинающих, когда с BDE заморачиваться не хочется, но нужно подключиться к DBF и считать из него или заполнить файл.
Описываемый ниже способ использует стандартные компоненты, без использование BDE и tDBF.
В качестве среды использована Delphi 2010
Собственно всё подключение сводится к настройке ADOConnection.
procedure TForm5.Button1Click(Sender: TObject);
AppFolderPath: string;
// подключаемся к ДБФ и выводим данные в таблицу
AppFolderPath:=copy(ExtractFilePath(Application.ExeName),1,length(ExtractFilePath(Application.ExeName))-1);
TabDBF.Active:=false;
CnDBF.Connected:=false;
CnDBF.ConnectionString:='Provider=MSDASQL;Password="";Persist Security Info=True;Data Source=Файлы dBASE;Mode=ReadWrite;Initial Catalog='+AppFolderPath;
CnDBF.DefaultDatabase:=AppFolderPath;
cnDBF.LoginPrompt:=false;
CnDBF.Connected:=true;
// err.dbf находится в папке AppFolderPath (в данном случае в папке с программой)
TabDBF.TableName:='err';
TabDBF.Active:=true;
// Подключение выполнено
Как справедливо заметили в комментарии, это вариант работает, но при наличии установленного BDE.
Для того чтобы обойти эту проблему можно использовать подключение через Microsoft.Jet.OLEDB
При этом процедура TForm5.Button1Click примет следующий вид:
procedure TForm5.Button1Click(Sender: TObject);
AppFolderPath: string;
// подключаемся к ДБФ и выводим данные в таблицу
AppFolderPath:=copy(ExtractFilePath(Application.ExeName),1,length(ExtractFilePath(Application.ExeName))-1);
TabDBF.Active:=false;
CnDBF.Connected:=false;
CnDBF.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source="' +AppFolderPath + '";Extended Properties="DBASE IV;";"';
CnDBF.LoginPrompt:=false;
cnDBF.Mode:=cmReadWrite;
CnDBF.Connected:=true;
CnDBF.Connected:=true;
// err.dbf находится в папке AppFolderPath (в данном случае в папке с программой)
TabDBF.TableName:='err';
TabDBF.Active:=true;
// Подключение выполнено
Этот раздел содержит информацию по работе с DBF файлами.
Создать DBF файл (Ctrl+N)Эта команда открывает диалоговое окно Структура файла :
Чтобы создать новый DBF файл, необходимо заполнить следующие поля:
После того, как нужные поля были заданы, есть возможность внести в них изменения, перемещаясь по таблице. Если файл содержит автоинкрементное поле, то при этом станут активны соответствующие поля ввода:
Кроме того, окно Структура файла содержит панель инструментов со следующими командами:
После внесения всех необходимых изменений в структуру файла, нажмите кнопку OK.
При создании DBF файла, соответствующий SQL запрос будет сгенерирован и добавлен в SQL Panel .
CREATE TABLE "D:\Table1.dbf" (field1 C(10,0),field2 C(20,0))
Аналогично, при изменении структуры DBF файла будет составлен список соответствующих SQL запросов. Структура файла будет изменена и эти запросы будут добавлены в SQL панель главного окна программы:
ALTER TABLE "D:\Table1.dbf" ALTER field2 C(25,0)
ALTER TABLE "D:\Table1.dbf" ADD field3 C(10,0)
ALTER TABLE "D:\Table1.dbf" ALTER field3 I(4,0)
При нажатии кнопки Отмена (или клавиши Escape ) окно Структура файла будет закрыто без сохранения изменений в структуре файла.
Открыть DBF файл (Ctrl+O)Отображает диалог открытия файла. Укажите нужный DBF файл и нажмите кнопку Открыть. Более того, можно выбрать сразу несколько файлов. Все они будут открыты.
Фильтр диалога открытия файла содержит следующие расширения:
Также, для открытия файла можно:
Справа от кнопки Открыть панели инструментов находится подменю недавно открытые файлы. Чтобы открыть любой из этих файлов, щелкните на нем мышью. Это подменю содержит до 20 недавно открытых DBF файлов. Они отсортированы в порядке их открытия.
Структура DBF файла (Ctrl+S)Открывает описанный выше диалог Структура файла. Но в этом случае поля ввода Имя файла и Тип файла. а также таблица Поля заполнена значениями текущего DBF файла.
Как и в случае создания DBF файла, Вы можете изменять структуру текущего файла, его DBF-формат (Visual FoxPro <-> dBase III plus ), экспортировать или распечатать его структуру.
После нажатия на кнопку OK внесенные изменения будут сохранены. Чтобы закрыть окно Структура файла без сохранения изменений, нажмите кнопку Отмена (или клавишу Escape ).
Если текущий DBF файл содержит удаленные записи. то они будут автоматически запакованы при сохранении структуры.
Импорт в DBF файл (Ctrl+I)Запускает Мастер Импорта. Этот мастер позволяет импортировать данные из следующих форматов:
На первой странице мастера необходимо выбрать исходный файл (CSV или XML ) и результирующий DBF файл. В случае отсутствия результирующего файла он будет создан.
При импорте XML файла (ранее экспортированного из DBF Commander Professional ) нет необходимости в дополнительных опциях. Напротив, импорт из CSV более сложный, поэтому данный мастер позволяет задать некоторые параметры входного файла:
В противном случае, если CSV файл не содержит названий и типов полей (или эта опция отключена), все поля результирующего DBF файла будут типа Character(254). и все поля будут названы 'field1 ', 'field2 ' и т.д.
В случае импорта в существующий DBF файл этот параметр не будет иметь значения.При изменении опций мастера в таблице Предварительный просмотр Вы можете увидеть данные результирующего DBF файла. После установки всех параметров нажмите кнопку Далее .
На последнем шаге мастера будет отображена командная строка для данного процесса импорта. Она может быть использована для импорта в DBF файл в пакетном режиме.
If you need import from other formats, please ask it on our Forum .
Если Вам нужен импорт из других форматов, мы можем обсудить это на нашем Форуме .
Экспорт DBF файла (Ctrl+E)Эта команда предназначена для экспорта текущего DBF файла в один из следующих форматов:
Если Вам нужен экспорт в другие форматы, мы можем обсудить это на нашем Форуме .
Сохранить как. (Ctrl+Shift+S)Команда предназначена для пересохранения текущего файла DBF файла в другой. Эта возможность очень полезна, например, если необходимо сохранить результаты SQL запроса в отдельный DBF файл.
Импорт на SQL сервер (СУБД) и Экспорт из SQL сервера - Oracle, MySQL, MS SQL Server, PostgreSQL и т.д.Данная возможность позволяет передавать данные с SQL сервера (под управлением СУБД - системы управления базой данных) в DBF файл и наоборот. Сервер. база данных и таблица для импорта или экспорта задаются с помощью строки подключения. Если у Вас уже есть нужная строка подключения - просто вставьте ее в соответствующее поле ввода. В противном случае нажмите кнопку Сформировать. для создания новой строки подключения.
В этом случае откроется диалоговое окно Свойства связи с данными. Здесь нужно выбрать Поставщика данных, сервер. базу данных. указать логин пользователя и пароль. Некоторые из этих параметров могут быть необязательными. Это зависит от типа поставщика. После определения всех параметров нажмите кнопку Проверить подключение для проверки возможности соединения с сервером. Если подключение произошло успешно, то полученная строка подключения может быть использована для импорта и экспорта данных на сервер (СУБД ). Нажмите кнопку OK для закрытия окна Свойства связи с данными .
Также, есть возможность использовать UDL файл (Universal Data Link - файл связи с данными) вместо строки подключения. Нажмите соответствующую кнопку и укажите нужный файл. Фактически, UDL файл - это текстовый файл, содержащий информацию о подключении (строку подключения). Его можно создать самостоятельно.
После ввода корректной строки подключения нажмите кнопку Подключение для установки связи с сервером и базой данных. Раскрывающийся список таблиц заполнится именами таблиц из соответствующей базы данных. У этого списка есть 2 параметра:
Пожалуйста, будьте очень осторожны при экспорте данных в системные таблицы - это может стать причиной нарушения работоспособности базы данных!
Выберите из раскрывающегося списка таблицу, в которую нужно экспортировать текущий файл (или, соответственно, таблицу, которую нужно импортировать с сервера в текущий DBF файл). Она будет отображена в таблице Предпросмотр .
В передаче данных участвуют только поля, совпадающие по названиям. Например, есть DBF файл с полями Field1. Field2. Field3. Таблица на сервере состоит из полей Field1. Field2. Field4. В этом случае в базу будут экспортированы (или, соответственно, импортированы) только поля Field1 и Field2. Список этих полей отображается под таблицей Предпросмотр. Отсутствующие поля будут заполнены значениями NULL .
После подготовки всех исходных данных нажмите кнопку Импорт (или, соответственно, Экспорт ).
Также, Вы можете экспортировать (или импортировать) данные из одного DBF файла в другой DBF file. Для этого при построении строки подключения выберите поставщика MS OLE DB Provider for Visual FoxPro .
Зашифровать DBF файл и Расшифровать DBF файлЭта функция позволяет хранить данные DBF файла в защищенном виде. Шифрование производится с помощью алгоритма Advanced Encryption Standard (AES. или Rijndael ) с ключом размером 256 бит.
Пароль нигде не хранится. При расшифровке файла введенный пароль просто применяется к файлу. Если он верный, то заголовок, структура и данные DBF файла будут восстановлены корректно. В противном случае файл останется нерасшифрованным. Это обеспечивает невозможность взлома файла и утечки секретной информации.
После выполнения команды Зашифровать на экране появится стандартное окно сохранения файла. Введите имя файла, который должен получиться после зашифровки и нажмите кнопку Сохранить .
После этого (и при шифровании. и при расшифровке ) появится окно для ввода пароля:
После ввода пароля и его подтверждения нажмите кнопку OK. После успешного завершения шифрования (или расшифровки) будет выдано соответствующее сообщение.
При шифровании DBF файла его внутренняя структура (заголовок, описания полей, данные) нарушается и превращается в совокупность нечитаемых двоичных данных. Поэтому открыть такой файл без расшифровки нельзя.
После шифрования файла, пожалуйста, убедитесь, что не осталось резервных копий данного файла (с расширением BAK ), а также его Мемо-файла (с расширением TBK ). Эти файлы могут содержать зашифрованные данные в открытом виде.
Зашифрованный файл не может быть открыт напрямую с помощью DBF Commander Professional - его нужно расшифровать. При выполнении команды Расшифровать появится окно открытия файла. Укажите зашифрованный файл, нажмите кнопку Открыть. Затем, в появившемся окне сохранения файла укажите имя результирующего файла с расшифрованными данными.
После этого нужно указать пароль. По завершении дешифрации будет выдан запрос на открытие расшифрованного файла. Если нужно открыть полученный файл в данный момент - нажмите кнопку Да .
Конвертировать DBF файлЭта команда меню предназначена для конвертации DBF файла в другие кодировки - из MS Windows в MS-DOS и наоборот. Их возможные значения представлены в разделе Кодировка DBF файла .
Конвертирование применяется к текущему файлу. При этом создается резервная копия (*.BAK ) файла (если включена соответствующая опция ). Если кодировка текущего DBF файла уже имеет тип MS Windows. то конвертация может быть осуществлена только в MS-DOS кодировку, и наоборот.
Также, есть возможность конвертировать DBF файл из кодировки ANSI в кодировку UTF-8 и, соответственно, из UTF-8 в ANSI. Если кодировка DBF файла MS-DOS. то конвертация в UTF-8 недопустима - полученные данные будут некорректными и информация будет повреждена. Чтобы конвертировать MS-DOS файл в UTF-8. сначала конвертируйте его в кодировку Windows .
Перед преобразованием DBF файла в кодировку UTF-8 учтите, что
текстовые символы в кодировке UTF-8 занимают больше байт в памяти, чем в кодировках ASCII или ANSI. Таким образом, чтобы не потерять данные, пожалуйста, убедитесь, что символьные поля (типа "Character ") имеют длину, более чем в 2 раза превышающую длину данных, содержащихся в них.
Во всех видах конвертации
участвуют только поля типов Character и Memo .
Предварительный просмотр и печать DBF файла (Ctrl+P)Эта команда предназначена для предварительного просмотра расположения DBF таблицы на странице:
В данном окне доступны следующие действия:
DBF — формат хранения данных. используемый в качестве одного из стандартных способов хранения и передачи информации системами управления базами данных, электронными таблицами и т. д.
DBF-файл делится на заголовок, в котором хранится информация о структуре базы (в новых версиях — и о некоторых других характеристиках, например используемой кодовой странице) и количестве записей и, собственно, область данных, представляющую собой последовательно организованную таблицу из записей фиксированной длины. Записи, в свою очередь, делятся на поля, также фиксированной длины.
Первое поле всегда — пометка удаления (1 байт). Если оно равно 2A16 (символ «звёздочка»), считается, что запись помечена на удаление. Удалённые записи могут быть восстановлены или физически удалены при выполнении операции «упаковка» (команда PACK xBase).
С DBF-файлами могут быть так же сопряжены другие файлы — .DBT (dBase III, IV,Clipper ). FPT (FoxBASE/FoxPro ) и, в некоторых случаях, какие-то ещё, предназначенные для хранения больших объектов переменной длины. DBT/.FPT-файлы не являются самостоятельными и не могут быть прочитаны без соответствующего им .DBF файла. В связи с этим их описание обычно включают в качестве составной части описания формата .DBF.
DBF-файл состоит из двух частей:
- заголовок
- собственно записи
Cтруктуры .DBF-файлов для таблиц dBASE. Представлены структуры файлов для различных версий dBASE: dBASE III PLUS 1.1, dBASE IV 2.0, dBASE 5.0 под DOS и dBASE 5.0 для Windows.
— подпишитесь на RSS ленту обновлений программы DBF Viewer 2000
DBF Viewer 2000 - чрезвычайно простая в использовании программа, позволяющая просматривать, редактировать и распечатывать содержимое DBF-файлов (в т. ч. используемых в Clipper, dBase, Foxpro и других СУБД).
Вы можете редактировать файлы в Windows или DOS-кодировке, просматривать информацию о полях; искать, сортировать, удалять данные с использованием групповых символов; распечатывать и упаковывать записи. Вы можете экспортировать информацию в формат HTML, настраивать цвета и шрифты, составлять запросы по шаблонам. Можно также редактировать многостроные текстовые поля в формате dBase III, dBase IV, FoxPro, VFP и DB2K. При этом вам не требуется внешних ODBC или BDE-драйверов для работы с базами данных.
Самое главное DBF Viewer 2000 от других аналогичных программ состоит в том, что эта программа работает действительно быстро. Кроме того, DBF Viewer 2000 поддерживает файлы больших размеров (более 2 Гб), работая с ними так же корректно, как и с любыми другими.
Ключевые возможности DBF Viewer 2000:
поддержка DBF-файлов любых баз данных (Clipper, FoxPro, Visual Foxpro, dBase III/IV, dBase Level 7, HiPer-Six);
экспорт данных в форматы CSV, TXT, XML, Excel, HTML, PRG, SQL;
экспорт данных в SQL-запросы для СУБД MS SQL, MySQL, Oracle, PostgreSQL;
поддержка просмотра и редактирования memo-полей во внешних файлах (.fpt. dbt. smt);
поддержка работы с DBF-файлами размером более 2 Гб;
автоматическое определение кодировки;
создание запросов по примерам ("Query by Example");
режим быстрого просмотра;
быстрое удаление дублирующихся записей;
возможность оптимизации структуры DBF-файлов;