一、头文件信息区
(1)头文件结构
说明:文件头共32个字节,具体内容如下
开始字节 | 字节数 | 说明 |
0 | 1 | 文件类型,具体说明见下表 |
1-3 | 3 | 文件最后修改日期,格式(YYMDD) |
4-7 | 4 | 记录总数。 |
8-9 | 2 | 文件头长度(包含文件头信息区以及字段描述区2部分的长度+1字节结束符(0xOD)) |
10-11 | 2 | 记录长度(一条记录中的字节长度。值应该是一条记录中所有字段的长度之和再加上1个字节) |
21-31 | 20 | 系统保留 |
(2)文件类型
编码 | 说明 |
0x02 | FoxBASE |
0x03 | FoxBASE+/dBASE III PLUS,无备注 |
0x30 | Visual FoxPro |
0x43 | dBASE IV SQL 表文件,无备注 |
0x63 | dBASE IV SQL 系统文件,无备注 |
0x83 | FoxBASE+/dBASE III PLUS,有备注 |
0x8B | dBASE IV 有备注 |
0xCB | dBASE IV SQL 表文件,有备注 |
0xF5 | FoxPro 2.x(或更早版本)有备注 |
二、字段描述信息区
(1)、字段结构
字段描述区中每个字段占32位,只描述去最后已结束符0x0d结尾。
序号 | 字节数 | 说明 |
0-9 | 10 | 字段名称 |
10 | 1 | 系统保留,默认为0,可以做为字符串结束标志。 |
11 | 1 | 字段类型,见下表 |
12-15 | 4 | 系统保留,默认为0 |
16 | 1 | 字段长度 |
17 | 1 | 小数位数 |
18-31 | 系统保留 |
如:一张表有5个字段,则字段描述区的长度为32*5+1=161,在结束区后为数据区的内容。
(2)、字段类型
代码 | 数据类型 | 允许输入符号 |
C | Character | |
Y | Currency | |
N | Numeric | |
F | Float | |
D | Date | |
T | DateTime | |
B | Double | |
I | Integer | |
L | Logical | |
M | Memo |
三、数据内容区
在数据区中保存着所有的数据内容,每条记录之间用空位符(0x20)分割,记录数量可以从文件头信息区中获取。
在DBF中内容占位符为0x20或0x00,在进行内容读取时需对占位符进行剔除。
例如:
OBJECTID字段,字段长度10,字段值为1
数据区保存格式为:20 20 20 20 20 20 20 20 20 31。
作用 | 字节数 | 内容 | 描述 |
占位符 | 1 | 0x20或0x2A | 0x20正常,0x2A已删除 |
字段1内容 | 字段长度 | ASCII码 | |
字段2内容 | 字段长度 | ASCII码 | |
。。。。 | 字段长度 | ASCII码 | |
字段n内容 | 字段长度 | ASCII码 |