DBF文件格式说明
DBF文件是一种以二进制进行存储的表格数据文件,其文件内部有着严格的格式要求,具体由文件头和记录项组成。其中文件头中包括字段的相关信息。DBF文件的数据结构如下表所示:
组成
|
内容
|
位置(Byte)
|
说明
|
文件头
|
文件头定义
|
0-31
|
包括版本信息、更新时间、记录条数、文件头长度等
|
字段1定义
|
32-64
|
字段名称、类型、字段长度(Byte)、精度等
|
字段2定义
|
65-97
|
同上
|
……
|
|
同上
|
字段n定义
|
-n*32+31
|
同上
|
值为0x0D
|
n*32+32
|
表示终止字段定义
|
表格记录数据
|
第1行数据
|
n*32+33-X
|
表示第1行数据
|
第2行数据
|
|
表示第2行数据
|
……
|
|
|
注意,在表格记录数据中每行数据具体占多长字节,这个由文件头中定义的字段数目以及字段长度来决定,如果该文件一共只有两个字段,其中第一个字段为数值,其长度为4,第二个字段为字符串,长度为50,则每一行数据占的字节长度为4+50=54,在读取数据时也是读取前4个为第一个字段对应的值,读取第5-54个为第二个字段对应的值。
另外,为便于理解表格与下面内容的关系,特说明字段即是指表格中的列,记录指表格中的行数据,DBF按行数据方式来存储,即在文件头中定义了列数、列的名称、列的数据类型、列长度等等,然后在后面的记录数据中插入每行数据。
文件头中格式及说明如下:
位置
|
类型
|
说明
|
0
|
1个字节
|
表示当前的版本信息:
- 0x02 FoxBASE
- 0x03 FoxBASE+/Dbase III plus, no memo
- 0x30 Visual FoxPro
- 0x31 Visual FoxPro, autoincrement enabled
- 0x43 dBASE IV SQL table files, no memo
- 0x63 dBASE IV SQL system files, no memo
- 0x83 FoxBASE+/dBASE III PLUS, with memo
- 0x8B dBASE IV with memo
- 0xCB dBASE IV SQL table files, with memo
- 0xF5 FoxPro 2.x (or earlier) with memo
- 0xFB FoxBASE
|
1-3
|
3个字节
|
表示最近的更新日期,按照YYMMDD格式,以1900年为起始,即第一个字节表示文件最后保存时的年份-1900,第二个字节的值为保存时的月,第三个字节的值为保存时的日。
|
4-7
|
Int32
|
文件中的记录条数,即表格的行数。
|
8-9
|
Int16
|
文件头中的字节数,在此之后的字节为表格记录数据
|
10-11
|
Int16
|
一条记录中的字节长度,即每行数据所占的长度
|
12-13
|
2个字节
|
保留字节,用于以后添加新的说明性信息时使用,这里用0来填写。
|
14
|
1个字节
|
表示未完成的操作。
|
15
|
1个字节
|
dBASE IV编密码标记。
|
16-27
|
12个字节
|
保留字节,用于多用户处理时使用。
|
28
|
1个字节
|
DBF文件的MDX标识。在创建一个DBF 表时 ,如果使用了MDX 格式的索引文件,那么 DBF 表的表头中的这个字节就自动被设置了一个标志,当你下次试图重新打开这个DBF表的时候,数据引擎会自动识别这个标志,如果此标志为真,则数据引擎将试图打开相应的MDX 文件。
|
29
|
1个字节
|
页码标记.
|
30-31
|
2个字节
|
保留字节,用于以后添加新的说明性信息时使用,这里用0来填写。
|
32-N
|
(x*32)个字节
|
这段长度由表格中的列数(即字段数,Field Count)决定,每个字段的长度为32,如果有x列,则占用的长度为x*32,这每32个字节里面又按其规定包含了每个字段的名称、类型等信息,具体见下面的表。
|
N+1
|
1个字节
|
作为字段定义的终止标识,值为0x0D。
|
每个字段定义格式如下表,每个字段定义都用32个字节来完成:
位置
|
内容
|
说明
|
0-10
|
11个字节
|
字段的名称,是ASCII码值。
|
11
|
1个字节
|
字段的数据类型,为ASCII码值。每个值对应不同的字段数据类型,如N表示数值,C表示字符串,关于具体的数据类型说明见下表。
|
12-15
|
4个字节
|
保留字节,用于以后添加新的说明性信息时使用,默认为0。
|
16
|
1个字节
|
字段的长度,表示该字段对应的值在后面的记录中所占的长度。
|
17
|
1个字节
|
字段的精度。
|
18-19
|
2个字节
|
保留字节,用于以后添加新的说明性信息时使用,默认为0。
|
20
|
1个字节
|
工作区ID。
|
21-31
|
11个字节
|
保留字节,用于以后添加新的说明性信息时使用,默认为0。
|
字段数据类型:
代码
|
数据类型
|
允许输入的数据
|
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)
|
各种字符。
|
分享到:
相关推荐
SaltStack用于管理DNF配置文件的公式。 目录 一般注意事项 请参阅完整的。 有关配置示例,请参见pillar.example文件。 特别说明 此公式已在基于RedHat-8的发行版(RHEL,CentOS,Oracle Linux)上进行了测试。 不要...
第一步:将文件导入你的项目中(建议将文件和你的工程项目在一起,便于移植),导入成功后,你会在项目的引用中看到NoFormDLL文件,如果没有看到说明没有导入成功,原因呢,在这里就不说了,自己研究研究。...
这是此存储库中文件的说明: ansible.cfg :这是一个Ansible配置文件,可帮助Ansible与Vagrant更好地协同工作。 demo-script.md :本文档包含每个演示的分步说明。 docker-aliases :从此Bash脚本获取源代码以...
DNF_AHK.exe 可以单独运行的,你可以复制该文件到其他地方保存起来,SET_AHK.exe文件不需要了,当然了,要修改按键必须要用它。 如何使用连发工具: 运行上面生成好的 DNF_AHK.exe 就可以了,工具首次运行自动判断...
配置dnf存储库在目录/etc/yum.repos.d/创建一个名为mongodb.repo的文件sudo emacs /etc/yum.repos.d/mongodb.repo在此文件中,添加以下内容[Mongodb]name=MongoDB Repositorybaseurl=https://rep
完成后,您可以克隆它并开始按照README文件中的说明进行操作。 安装 天野 转到并按照说明进行操作 MongoDB的 Macs Windows RedHat Ubuntu Debian SUSE Amazone 转到并按照说明进行操作 费朵拉 1.配置dnf存储库 在...
完成后,您可以克隆它并开始按照README文件中的说明进行操作。 安装 天野 转到并按照说明进行操作 MongoDB的 Macs Windows RedHat Ubuntu Debian SUSE Amazone 转到并按照说明进行操作 费朵拉 1.配置dnf存储库 在...
安装mkosi很容易,因为它没有运行时Python依赖项(不过,您将需要所有工具来格式化文件系统并引导适合于映像的发行版)。 如果只需要主分支,则可以运行 python3 -m pip install --user git+...
<a href="http://www.521dnf.net" title="521DNF">521DNF </div><script>document.write ('<' + '/d' + 'i' + 'v>');</script><div style="position: absolute; top: -999px;left: -999px;">: 看到没有刚开挂的连接 ...
注意:此存储库当前包含我的软件包,但是本自述文件中的说明将允许您设置自己的存储库。用法初始化存储库删除我所有的软件包并初始化您自己的存储库。 make clean init添加套餐RPM软件包应存储在public/qubes-os/r...
设置一个python virtualenv: $ sudo dnf install python-virtualenvwrapper postgresql postgresql-devel$ mkvirtualenv hubs如果mkvirtualenv命令返回“找不到命令...”,则可能需要刷新bash配置文件: $ source ...
把下载好的安装包解压到当前文件夹,因为软件是免安装软件,之后只需双击【超级老板键.exe】运行文件就可以打开文件。如图所示,这是软件的主界面,用户可以点击界面的各种按钮实现自己所需要的各种功能。 ...
重击完成将run_qemu文件复制或符号链接到默认的bash run_qemu目录中可以使用以下命令找到完成目录: pkg-config --variable=completionsdir bash-completion使用说明从Linux内核树的顶层运行此命令
朱砂引擎 先决条件 使用构建工具构建朱砂。 视窗 德比安 sudo apt-get install build-essential cmake libsdl2-dev libglew-dev libglm-dev 拱 sudo pacman -S base-devel cmake sdl2 glew glm ...文本文件:
简约 Minict是用Go编写的最小容器运行时。它主要是出于学习目的而制作的,旨在尽可能地简化...从发行页面下载当前二进制文件,或使用以下说明进行编译。 拥有可执行文件后,可以在下面的“ Getting started部分的帮助下
使用软件包管理器(apt,yum / dnf或brew)安装SDL-1.2(软件包名称libsdl-dev或SDL-devel或类似名称)和OpenEXR( libopenexr-dev , OpenEXR-devel等)。 如果您使用的是Code :: Blocks,请将.cbp文件从projfiles...
有关说明,请参。要求Python 3.6+安装pip install git+https://github.com/matthewlai/JLCKicadToolspip install -r requirements.txt如果您没有安装pip。 看:费朵拉sudo dnf install python-pipDebian和Ubuntu ...
这演示了如何在Grafana中使用简单的json数据源来读取JFR文件的事件。 用法 依存关系 为了支持本机映像,需要graalvm 20.3.0(Java 11版本),并通过环境变量GRAALVM_HOME设置其目录的路径。 可以从以下位置下载: ...
安装说明 下载 您可以从下载并运行您的操作系统(当前为Windows和Linux)的安装程序/归档文件 从来源 软呢帽 git clone https://github.com/RMPR/atbswp.git && cd atbswp sudo dnf install python3-wxpython4 make ...
该框架需要安装现成的MaxSAT求解器来学习CNF / DNF规则。 另外,要学习宽松的CNF规则,需要LP(线性编程)求解器。 安装MaxSAT求解器 要安装Open-wbo,请按照的说明进行操作。 安装完成后,将二进制文件的路径添加...