通过读取初始的.DBF字节可以假定哪种报头格式? [英] Which header format can be assumed by reading an initial .DBF byte?

查看:107
本文介绍了通过读取初始的.DBF字节可以假定哪种报头格式?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

关于.DBF文件的第一个字节以及如何检测所用xbase的版本(即文件其余部分的格式),我可以编译的最全面的列表是:

Regarding the first byte of a .DBF file and how to detect the version of xbase used (ie, 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

可以通过读取初始.DBF字节来假定哪种标头格式? (也就是说,文件使用的是版本2的标头,版本3到5的标头还是版本7的标头?)尚不清楚最好的逻辑是什么……

Which header format can be assumed by reading the initial .DBF byte? (Ie, does the file use a version 2 header, a version 3 to 5 header, or a version 7 header?) It's not at all clear what the best logic would be...

推荐答案

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等...)

The DBF's are virtually static in its header. Static until the start section of fields indicated in the same heading. The difference made ​​between them given by different database engines derivatives (xbase) is the data types, optimization or storage formats (7.8 bits ASCII or 128 or any other difference ...). The format does not have versions (not a standard) simply revisions as software developers who created variants on their engines database (dbase foxpro vs vs clipper etc ...)

我为半自动翻译道歉,但很有用。

I apologize for the semi-automatic translation, but useful.

这篇关于通过读取初始的.DBF字节可以假定哪种报头格式?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆