What header format can I accept by reading the initial .DBF byte?

Regarding the first byte of the .DBF file and how to determine the version of xbase being used (i.e. the format of the rest of the file), the most comprehensive list I can compile is:

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

What header format can I accept by reading the original .DBF byte? (That is, does the file use the version 2 header, version 3 to 5 header, or version 7 header?) It's not at all clear what better logic would be ...

+3
2

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 vs vs clipper ..)

, .

+1

, ; .. 43, 63, 7b,..., dBase 4, 30, 31 32 FoxPro ..

, .

0

Source: https://habr.com/ru/post/1757729/


All Articles