欢迎来到天天文库
浏览记录
ID:6126695
大小:260.50 KB
页数:15页
时间:2018-01-04
《dbf文件格式详细说明及程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、DBF文件格式详细说明及程序设计三峡大学水利与环境学院肖泽云1DBF文件格式说明DBF文件是一种以二进制进行存储的表格数据文件,其文件内部有着严格的格式要求,具体由文件头和记录项组成。其中文件头中包括字段的相关信息。DBF文件的数据结构如下表所示:组成内容位置(Byte)说明文件头文件头定义0-31包括版本信息、更新时间、记录条数、文件头长度等字段1定义32-64字段名称、类型、字段长度(Byte)、精度等字段2定义65-97同上……同上字段n定义-n*32+31同上值为0x0Dn*32+32表示终止字段定义表
2、格记录数据第1行数据n*32+33-X表示第1行数据第2行数据表示第2行数据……注意,在表格记录数据中每行数据具体占多长字节,这个由文件头中定义的字段数目以及字段长度来决定,如果该文件一共只有两个字段,其中第一个字段为数值,其长度为4,第二个字段为字符串,长度为50,则每一行数据占的字节长度为4+50=54,在读取数据时也是读取前4个为第一个字段对应的值,读取第5-54个为第二个字段对应的值。另外,为便于理解表格与下面内容的关系,特说明字段即是指表格中的列,记录指表格中的行数据,DBF按行数据方式来存储,即在文
3、件头中定义了列数、列的名称、列的数据类型、列长度等等,然后在后面的记录数据中插入每行数据。文件头中格式及说明如下:位置类型说明01个字节表示当前的版本信息:·0x02FoxBASE·0x03FoxBASE+/DbaseIIIplus,nomemo·0x30VisualFoxPro·0x31VisualFoxPro,autoincrementenabled·0x43dBASEIVSQLtablefiles,nomemo·0x63dBASEIVSQLsystemfiles,nomemo·0x83FoxBASE+/d
4、BASEIIIPLUS,withmemo·0x8BdBASEIVwithmemo·0xCBdBASEIVSQLtablefiles,withmemo·0xF5FoxPro2.x(orearlier)withmemo·0xFBFoxBASE1-33个字节表示最近的更新日期,按照YYMMDD格式,以1900年为起始,即第一个字节表示文件最后保存时的年份-1900,第二个字节的值为保存时的月,第三个字节的值为保存时的日。4-7Int32文件中的记录条数,即表格的行数。8-9Int16文件头中的字节数,在此之后的字节为
5、表格记录数据10-11Int16一条记录中的字节长度,即每行数据所占的长度12-132个字节保留字节,用于以后添加新的说明性信息时使用,这里用0来填写。141个字节表示未完成的操作。151个字节dBASEIV编密码标记。16-2712个字节保留字节,用于多用户处理时使用。281个字节DBF文件的MDX标识。在创建一个DBF表时,如果使用了MDX格式的索引文件,那么DBF表的表头中的这个字节就自动被设置了一个标志,当你下次试图重新打开这个DBF表的时候,数据引擎会自动识别这个标志,如果此标志为真,则数据引擎将试图
6、打开相应的MDX文件。291个字节页码标记.30-312个字节保留字节,用于以后添加新的说明性信息时使用,这里用0来填写。32-N(x*32)个字节这段长度由表格中的列数(即字段数,FieldCount)决定,每个字段的长度为32,如果有x列,则占用的长度为x*32,这每32个字节里面又按其规定包含了每个字段的名称、类型等信息,具体见下面的表。N+11个字节作为字段定义的终止标识,值为0x0D。每个字段定义格式如下表,每个字段定义都用32个字节来完成:位置内容说明0-1011个字节字段的名称,是ASCII码值。
7、111个字节字段的数据类型,为ASCII码值。每个值对应不同的字段数据类型,如N表示数值,C表示字符串,关于具体的数据类型说明见下表。12-154个字节保留字节,用于以后添加新的说明性信息时使用,默认为0。161个字节字段的长度,表示该字段对应的值在后面的记录中所占的长度。171个字节字段的精度。18-192个字节保留字节,用于以后添加新的说明性信息时使用,默认为0。201个字节工作区ID。21-3111个字节保留字节,用于以后添加新的说明性信息时使用,默认为0。字段数据类型:代码数据类型允许输入的数据B二进制
8、型各种字符。C字符型各种字符。D日期型用于区分年、月、日的数字和一个字符,内部存储按照YYYYMMDD格式。G(GeneralorOLE)各种字符。N数值型(Numeric)-.0123456789L逻辑型(Logical)?YyNnTtFf(?表示没有初始化)。M(Memo)各种字符。2DBF文件数据结构实例分析下面以一个具体实例来分析DBF数据结构:该表格数据为:列1列212243
此文档下载收益归作者所有