Какой формат заголовка можно предположить, прочитав начальный байт .DBF? - PullRequest
3 голосов
/ 03 августа 2010

Что касается первого байта файла .DBF и способа определения используемой версии xbase (т. Е. Формата остальной части файла), то наиболее полный список, который я могу составить:

Byte 0
-----------
x xxx x 001 = 0x?1 not used
0 000 0 010 = 0x02 FoxBASE
0 000 0 011 = 0x03 FoxBASE+/dBASE III PLUS, no memo
x xxx x 100 = 0x?4 dBASE 7
0 000 0 101 = 0x05 dBASE 5, no memo
0 011 0 000 = 0x30 Visual FoxPro
0 011 0 001 = 0x31 Visual FoxPro, autoincrement enabled
0 011 0 010 = 0x32 Visual FoxPro, Varchar, Varbinary, or Blob-enabled
0 100 0 011 = 0x43 dBASE IV SQL table files, no memo
0 110 0 011 = 0x63 dBASE IV SQL system files, no memo
0 111 1 011 = 0x7B dBASE IV, with memo
1 000 0 011 = 0x83 FoxBASE+/dBASE III PLUS, with memo
1 000 1 011 = 0x8B dBASE IV, with memo
1 000 1 110 = 0x8E dBASE IV with SQL table
1 100 1 011 = 0xCB dBASE IV SQL table files, with memo
1 110 0 101 = 0xE5 Clipper SIX driver, with SMT memo
1 111 0 101 = 0xF5 FoxPro 2.x (or earlier) with memo
1 111 1 011 = 0xFB FoxBASE (with memo?)
| ||| | |||
| ||| | |||   Bit flags (not used in all formats)
| ||| | |||   -----------------------------------
| ||| | +++-- bits 2, 1, 0, version (x03 = level 5, x04 = level 7)
| ||| +------ bit 3, presence of memo file
| +++-------- bits 6, 5, 4, presence of dBASE IV SQL table
+------------ bit 7, presence of .DBT file

Какой формат заголовка можно предположить, прочитав начальный байт .DBF? (Т. Е. Использует ли файл заголовок версии 2, заголовок версии 3–5 или заголовок версии 7?) Не совсем понятно, какой будет лучшая логика ...

Ответы [ 2 ]

1 голос
/ 18 июня 2011

Заголовок DBF: http://www.dbf2002.com/dbf-file-format.html

Пример доступа к базе данных dbf из базового режима, да BASIC;)

http://www.angelfire.com/d20/quickbasic/UTIL/IMB9006.ZIP

  • подробнее ...

DBF практически статичны в своем заголовке.Статические до начала раздела поля указываются в том же заголовке.Разница между ними, заданная различными производными ядра СУБД (xbase), заключается в типах данных, форматах оптимизации или хранения (7,8 бит ASCII или 128 или любое другое различие ...).Формат не имеет версий (не стандартных), просто пересматривается как разработчики программного обеспечения, которые создали варианты в своей базе данных движков (dbase foxpro против Clipper и т. Д.)

Я извиняюсь за полуавтоматический перевод, нополезно.

0 голосов
/ 07 декабря 2015

Используйте формат, который идет с прочитанным байтом;т.е. 43, 63, 7b, ..., будут заголовками dBase 4, а 30, 31 и 32 будут заголовками FoxPro и т. д.

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

...