注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

专修培训

——专业计算机培训机构

 
 
 

日志

 
 

DBF数据表文件的结构分析  

2011-01-12 13:01:10|  分类: 学习 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

DBF文件由两部分组成, 

第一部分是结构描述,即文件头信息;共32个字节(0~31
第二部分是表本身的内容,该部分又分为两个部分:
前一部分是表的结构说明,共32个字节具体的内容见下1

后一部分是字段描述区,从第32个字节开始到十六进制结束字符0x0D。具体包括内容见2

DBF数据表文件的结构分析 - 专修学院计算机中心 - 专修学院计算机中心
 

 BDF文件头的详细格式:
 

在文件中的位置

内容

说明

0

1个字节

表示当前的版本信息

1-3

3个字节

表示最近的更新日期,按照YYMMDD格式。

4-7

1个32位数

文件中的记录条数。

8-9

1个16位数

文件头中的字节数。

10-11

1个16位数

一条记录中的字节长度。

12-13

2个字节

保留字节,用于以后添加新的说明性信息时使用,这里用0来填写。

14

1个字节

表示未完成的操作。

15

1个字节

dBASE IV编密码标记。

16-27

12个字节

保留字节,用于多用户处理时使用。

28

1个字节

DBF文件的MDX标识。在创建一个DBF 表时 ,如果使用了MDX 格式的索引文件,那么 DBF 表的表头中的这个字节就自动被设置了一个标志,当你下次试图重新打开这个DBF表的时候,数据引擎会自动识别这个标志,如果此标志为真,则数据引擎将试图打开相应的MDX 文件。

29

1个字节

Language driver ID.

30-31

2个字节

保留字节,用于以后添加新的说明性信息时使用,这里用0来填写。

32-X

(n*32)个字节

记录项信息描述数组。n表示记录项的个数。这个数组的结构在表2.8中有详细的解释。

X+1

1个字节

作为记录项终止标识。


DBF文件头中记录项的详细格式:
 

位置

内容

说明

0-10

11个字节

记录项名称,是ASCII码值。

11

1个字节

记录项的数据类型,是ASCII码值。(B、C、D、G、L、M和N,具体的解释见表2.9)。

12-15

4个字节

保留字节,用于以后添加新的说明性信息时使用,这里用0来填写。

16

1个字节

记录项长度,二进制型。

17

1个字节

记录项的精度,二进制型。

18-19

2个字节

保留字节,用于以后添加新的说明性信息时使用,这里用0来填写。

20

1个字节

工作区ID

21-30

10个字节

保留字节,用于以后添加新的说明性信息时使用,这里用0来填写。

31

1个字节

MDX标识。如果存在一个MDX 格式的索引文件,那么这个记录项为真,否则为空。

前32位格式:
00:数据库名称   0x03:foxbase+、foxpro  
              0x83:foxbase+、dbaseIII
01-03:最好更新日期,格式为yymmdd
04-07:记录个数
08-09:字段信息占用的字节数
10-11:记录信息占用的字节数
12-13:保留
14:       dbaseIV标志
15:加密标志
16-27:dBaseIV多用户环境下的用户名称
28:是否存在索引文件
29:dBaseIV语言引擎ID号
30-31:保留
32-n:字段信息
n+1:文件头结束标志0x0d(后面的字节就是记录信息了)

字段信息:
每32字节表示一个字段
0-10:字段名称(ASCII字符,以0x00结束)
11:字段类型
12-15:在记录中的显示位置
16:字段长度
17:小数点位置
18-19:保留
20:dBaseIV工作区ID
21-30:保留
31:该字段是否索引字段

字段类型:
c:字符型
d:日期型号,格式为yyyymmdd
f:float   point
g:通用型
l:逻辑型
m:memo型
n:整形
p:图像
解读:

低字节在前,所以要取字段总数时,应该用如下方法:

记录总数  =  4个字节+256 1次方*5字节+256 2*6字节+256 3*7字节


注意:

字段名     ASCII码方式存放,最大长度是10个字符,若字段名长度少于10个字符则以空字符(0x00)填充

字段类型   ASCII码方式存放,1个字符,其值为

Field type: 

C      Character

Y      Currency

N      Numeric

F      Float

D      Date

T      DateTime

B      Double

I      Integer

L      Logical

M    Memo

G    General

C      Character (binary)

M      Memo (binary)

P      Picture

+      Autoincrement (dBase Level 7)

O      Double (dBase Level 7)

@      Timestamp (dBase Level 7)

DBF数据表文件的结构结束标志为"0x0D",占1个字节。对于VFP表文件从"0x0D"所在的字节开始的263B用于描述自由表或数据库表的相关信息(若为自由表则取值全为零)。

VFP表文件长度 = 32(文件头)+32*字段个数+1(结束标志)+263。然后是数据部分记录1、记录2……记录n

各记录均为定长格式,以ASCII码方式顺序存放。每个记录的第一个字节是删除标志,若记录被删除,则该字节为0x2A"*";否则为0x20即空格。

各记录间无分隔符

整个文件的结束标志为0x1A,位于最后一个记录之后的一个字节中。

  评论这张
 
阅读(318)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017