posts - 8,  comments - 6,  trackbacks - 0


DBF的文件格式:

    

文件头

记录1

记录2

记录3

记录n


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 格式的索引文件,那么这个记录项为真,否则为空。


  DBF文件中的数据类型:

代码

数据类型

允许输入的数据

B

二进制型

各种字符。

C

字符型

各种字符。

D

日期型

用于区分年、月、日的数字和一个字符,内部存储按照YYYYMMDD格式。

G

(General

or OLE)

各种字符。

N

数值型(Numeric)

- . 0 1 2 3 4 5 6 7 8 9

L

逻辑型(Logical)

? Y y N n T t F f (? 表示没有初始化)。

M

(Memo)

各种字符。


举例说明:
假如文件中有10条记录,每个记录有4个字段,4个字段的长度分别为:12、14、16、18,那么文件的详细格式如下:
文件头占32+32*4+2个字节:
前32个字节是文件头中的基本信息,32*4个字节是记录项(即字段的定义信息),最后两个字节分别是16进制的0D 和20,0D代表上文表格中说明的记录项终止标识。20代表一个空格。
数据信息占(12+14+16+18)*10+1个字节:
12+14+16+18个字节代表一条记录,共10条记录。最后一个字节是数据的终止表示通常是16进制表示的1A
补充说明:
由于上述文件格式的定义,决定了字段名称不能超过11个字节(或者5个中文字符),字符类型的字段,数据最大不能超过255个字节。在从文本、Excel、大型数据库导出数据到DBF格式文件时,一定要考虑到这些长度限制。 
posted on 2007-12-14 11:34 Kevin Jiang 阅读(15574) 评论(6)  编辑  收藏 所属分类: 暂不分类

FeedBack:
# re: DBF文件格式[未登录]
2008-05-24 12:04 | tiger
非常感谢  回复  更多评论
  
# re: DBF文件格式
2008-07-17 19:09 | llj
非常感谢!!!!
终于弄明白了~ ~  回复  更多评论
  
# re: DBF文件格式
2008-10-29 22:22 | fwr
不同的版本,格式还不一样,vfp写的版本“30”,里面好多已经跟这个不一样了,有些也没弄清楚  回复  更多评论
  
# re: DBF文件格式[未登录]
2011-03-19 15:13 |
应该:数据信息占(12+14+16+18+1)*10个字节吧  回复  更多评论
  
# re: DBF文件格式
2011-03-20 08:37 | Kevin Jiang
@勇
不是这样的,每个记录的结束不需要一个字节来表示,因为文件头中对记录项已经详细定义过。只需要数据信息结束的时候,用一个字节表示数据结束就可以了。  回复  更多评论
  
# re: DBF文件格式[未登录]
2011-07-28 17:23 | 111
@Kevin Jiang
每条数据的第一位是一个判断删除与否的标志位  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 
<2008年10月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

常用链接

留言簿(1)

随笔分类(9)

随笔档案(9)

文章分类(1)

文章档案(1)

暂不分类

  • 使用em定义字体大小
  • 使用px定义字体大小存在着在IE里无法调节字体大小的问题,使用em可以解决这一问题,据称国外站点多数都是使用em来定义字体大小的。中文文章地址

积分与排名

  • 积分 - 21082
  • 排名 - 1673

最新评论

  • 1. re: DBF文件格式[未登录]
  • @Kevin Jiang
    每条数据的第一位是一个判断删除与否的标志位
  • --111
  • 2. re: DBF文件格式
  • @勇
    不是这样的,每个记录的结束不需要一个字节来表示,因为文件头中对记录项已经详细定义过。只需要数据信息结束的时候,用一个字节表示数据结束就可以了。
  • --Kevin Jiang
  • 3. re: DBF文件格式[未登录]
  • 应该:数据信息占(12+14+16+18+1)*10个字节吧
  • --勇
  • 4. re: DBF文件格式
  • 不同的版本,格式还不一样,vfp写的版本“30”,里面好多已经跟这个不一样了,有些也没弄清楚
  • --fwr
  • 5. re: DBF文件格式
  • 非常感谢!!!!
    终于弄明白了~ ~
  • --llj

阅读排行榜