DBF文件结构

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.数据文件.DBF结构分析

数据库文件由头记录(header record)和数据记录(data record)两个部分组成。头记录从文件位置0开始,定义数据库的结构及其它与数据库有关的信息;数据记录紧接在头记录后面,包含了字段的实际文本内容。

1.1. 头记录结构描述

字节00:数据库文件开始及文件类型标志,对应值如下:

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(或以前版本)文件,有备注字段

0xFB FoxBASE文件,有备注字段

字节01-03:最近一次更新的时间(YYMMDD)。

字节04-07:数据库文件记录的数目。

字节08-09:第一个数据记录的位置,等于头记录所占的长度。

字节10-11:每个记录的长度(包括删除标志),等于所有字段宽度之和再加1。

字节12-27:保留,为0x00。

字节28-29:保留(VFP中已定义为数据表标志和代码页标志)。

字节30-31:保留。

字节32-n:字段子记录(field subrecord)。

字节n+1:头记录结束标志0x0D。

(在VFP中,字节n+2-n+264还包含有.DBC文件路径的相关信息。)

1.2. 字段子记录结构描述

头记录第08-09字节指示了数据记录的开始位置,每个数据记录以删除标志开始(0x20或0x28),删除标志后面是记录的具体内容。

字段描述信息从文件第32字节开始,每个字段占32个字节。

字节00-10:字段名,为ASCII字符串;字段名长度不足10个字符时,以空字符(0x00)填充。

字节11:字段类型,以大写字母的ASCII码形式存储。

字节12-15:该字段在数据记录中的偏移值(displacement),等于该字段为止所有字段宽度之和;第一个字段为1(即删除标志所占的一个字节),其它字段该值等于上一字段的值加上本字段的宽度。

字节16:本字段的宽度(字节数)。

字节17:数字型、浮点型、双精度型字段的小数位宽度。

字节18-31:保留。(字节18在VFP中已被定义为字段标志)

1.3. 数据记录内容

除Genral、Picture等类型的字段以外,其它数据字段的实际体内容都是以ASCII码文本形式存储的,如数字型的4存储为0x34。

1.4. 数据库文件结束标志

在所有数据记录内容之后,是数据库文件的最后一个字节,即文件结束标志0x1A。

2.备注文件.FPT结构分析

备注文件由一个头记录和任意数量的数据块结构组成。

头记录包含一个指向下一个自由块(free block)的指针、块的大小(字节数),它从文件位置0开始,共512字节。

块的大小缺省值为64(字节),它可以通过SET BLOCK TO N命令来改变;若N>32,块的大小等于N;若N<=32,块的大小=n*512;若n=0,则块大小为512字节。

头记录之后是数据块(也称备注块memo block),每个块包含一个块头(block header)和备注文字内容。

数据库文件中的MEMO字段包含了用来指示备注块的编号,一个块在备注文件中的位置=编号*块的大小;所有备注块均从偶数的边界块地址开始,一个备注块可以占用一个以上的连续块。

2.1. 备注记录描述(512字节)

字节00-03:下一自由块的位置。

字节04-05:未用。

字节06-07:块的大小(当N<=32时,存储为2n)。

字节08-511:未用。

2.2. 备注块和备注文本内容描述

字节00-03:块标志,指示块中数据的类型,0表示图形(Picture型字段),1表示文本(Memo型字段)。

字节04-07:备注内容的长度Length(字节数)。

字节08-n :备注文本的内容(n等于Length)。

相关文档
最新文档