VFP文件头结构文档Word格式.docx
- 文档编号:18391827
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:15
- 大小:21.79KB
VFP文件头结构文档Word格式.docx
《VFP文件头结构文档Word格式.docx》由会员分享,可在线阅读,更多相关《VFP文件头结构文档Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
注释所有报表均设置为横向打印格式。
VisualFoxPro6.0和5.0
要查看下列表结构…
打印此报表
使用
数据库1
60DBC.frx
60DBC.dbf
表单和
可视类库
60SCX1.frx
60SCX2.frx
60SCX.dbf
菜单2
60MNX.frx
60MNX.dbf
项目
60PJX1.frx
60PJX2.frx
60PJX.dbf
报表和
标签
60FRX1.frx
60FRX2.frx
60FRX.dbf
1可以在60DBCPRO.frx中打印数据库的属性。
26.0结构中的位置字段与5.0结构不同。
FoxPro2.6版
屏幕
26SCX1.frx
26SCX2.frx
26SCX.dbf
菜单
26MNX.frx
26MNX.dbf
26PJX1.frx
26PJX2.frx
26PJX.dbf
26FRX1.frx
26FRX2.frx
26FRX.dbf
表文件的结构(.dbc、.dbf、.frx、.lbx、.mnx、.pjx、.scx、.vcx)
VisualFoxPro使用表存储数据,并根据存储数据的不同定义了不同的文件类型,作为表文件保存的文件类型有:
表(.dbf)
数据库(.dbc)
表单(.scx)
标签(.lbx)
菜单(.mnx)
项目(.pjx)
报表(.frx)
可视类库(.vcx)
由于上述文件实际上就是表,因此能够以浏览.dbf文件的方式使用和浏览这些文件。
表文件由头记录及数据记录组成。
头记录定义该表的结构并包含与表相关的其他信息。
头记录由文件位置0开始。
数据记录1紧接在头记录之后(连续的字节),包含字段中实际的文本。
有关各种文件类型的表结构的详细内容,请参阅“表文件的表结构”。
记录的长度(以字节为单位)等于所有字段定义的长度之和。
表文件中存储整数时低位字节在前。
表头记录的结构
文件类型
0x02FoxBASE
0x03FoxBASE+/dBASEIIIPLUS,无备注
0x30VisualFoxPro
0x43dBASEIVSQL表文件,无备注
0x63dBASEIVSQL系统文件,无备注
0x83FoxBASE+/dBASEIIIPLUS,有备注
0x8BdBASEIV有备注
0xCBdBASEIVSQL表文件,有备注
0xF5FoxPro2.x(或更早版本)有备注
0xFBFoxBASE
1–3
最近一次更新的时间(YYMMDD)
4–7
文件中的记录数目
8–9
第一个数据记录的位置
10–11
每个数据记录的长度(包括删除标记)
12–27
保留
28
表的标记
0x01具有.cdx结构的文件
0x02文件包含备注。
0x04文件是数据库(.dbc)
请注意,这个字节可以包含任何上面值的和。
例如,0x03表明表具有结构化.cdx和一个备注字段。
29
代码页标记
30–31
保留,包含0x00
32–n
字段子记录
字段的数目决定了字段子记录的数目。
表中每个字段都对应一个字段子记录。
n+1
头记录终止符(0x0D)
n+2到n+264
此范围内的263个字节包含后链信息(相关数据库(.dbc)的相对路径)。
如果第一个字节为0x00,则该文件不与数据库关联。
因此数据库文件本身总是包含0x00。
1头记录中的第8到第9个字节指示数据文件中数据的起始位置。
数据记录从删除标记字节开始。
如果此字节为ASCII空格(0x20),该记录没有删除标记,如果第一字节为星号(0x2A),该记录有删除标记。
在标记之后是字段记录中所命名各字段中的数据。
字段子记录结构
0-10
字段名(最多10个字符—若少于10则用空字符(0x00)填充)
11
字段类型
C–字符型
Y–货币型
N–数值型
F–浮点型
D–日期型
T–日期时间型
B–双精度型
I–整型
L–逻辑型
M–备注型
G–通用型
C–字符型(二进制)
M–备注型(二进制)
P–图片型
12-15
记录中该字段的偏移量
16
字段长度(以字节为单位)
17
小数位数
18
字段标记
0x01系统列(用户不可见)
0x02可存储null值的列
0x04二进制列(只适于字符型和备注型)
19–32
有关对每个记录中字符的限制以及字段数目的最大值等详细内容,请参阅“VisualFoxPro系统容量”。
除非在文件中添加下列功能,否则VisualFoxPro将不修改按FoxPro2.x文件格式保存的文件标头:
支持null值
日期时间型、货币型及双精度型数据
字符字段和备注字段标记为二进制
在数据库(.dbc)文件中添加表
提示可以使用下面的公式求出表文件中字段的数目:
(x–296/32)公式中,x表示第一个记录的位置(表头记录的第8到第9个字节),296表示263(后链信息)+1(头记录终止符)+32(第一个字段子记录),32是字段子记录的长度。
复合索引文件的结构(.cdx)
所有复合索引均为压缩索引。
存在一种追踪.cdx文件中所有标识的文件结构。
该结构与压缩索引文件的结构只有一点不同:
该结构中最低层的叶结点指向复合索引中的标识。
索引中所有标识均有各自的完整结构,并与.idx文件的压缩索引结构等价。
压缩索引文件的结构(.idx)
压缩索引头记录
指向根结点的指针
04-07
指向自由结点列表的指针(如果不存在,则为–1)
08-11
保留供内部使用
12-13
关键字长度
14
索引选项(下列某一数值或它们的和)
1–唯一索引
8–索引包含FOR子句
32–压缩索引格式
64–复合索引标头
15
索引签名
16-19
20-23
24-27
28-31
32-35
36-501
502-503
升序或降序
0=升序
1=降序
504-505
506-507
FOR表达式池长度1
508-509
510-511
关键字表达式池长度1
512-1023
关键字表达式池(未编译)
1该信息追踪关键字表达式池中使用的空间。
压缩索引内部结点记录
字节偏移
00-01
结点属性(下列某一数值或它们的和):
a.0–索引结点
b.1–根结点
c.2–叶结点
02-03
现有关键字的数目(0,1或更多)
04-07
当前结点的左结点指针(在同一层次上;
如果不存在,则为-1)
08-11
当前结点的右结点指针(在同一层次上;
12-511
最多有500个字符,其中包括关键字长度的值,用四字节的十六进制数表示(按照一般的自左而右的格式存储):
此结点总是包含索引关键字、记录编号及内联索引指针2。
字节02-03指定的数决定键值/四字节十六进制数组合出现的次数。
压缩索引外部结点记录
0–索引结点
1–根结点
2–叶结点
结点上可用的自由空间
14-17
记录号掩码
重复字节计数掩码
19
后缀字节计数掩码
20
用作记录号的比特位数
21
用作重复计数的比特位数
22
用作后缀计数的比特位数
23
包含记录号、重复计数及后缀计数的字节数
24-511
索引关键字的信息2
2每项均由记录号、重复字节计数及后缀字节计数组成,并且都为压缩形式。
关键字文本放置在结点的逻辑末尾,向后起作用,适用于当前的各个关键字项。
索引文件的结构(.idx)
索引文件包含一个头记录以及一个或多个结点记录。
头记录包含根结点、当前的文件大小、关键字长度、索引选项与签名以及用可打印的ASCII表示的关键字值和FOR表达式。
头记录从文件位置0开始。
其余的结点记录包含属性值,现有的关键字数目以及指向当前结点的左结点和右结点(在同一层次上)的指针。
另外还包含有一组字符,其中包括关键字值和指向某个低级结点或实际的表记录编号的指针。
输出到文件中的每个记录的大小为512字节。
索引头记录
指向自由结点列表的指针(如果不存在则为-1)
指向文件尾的指针(文件大小)
14
索引选项(下列某一数值或它们的和):
1–唯一索引
8–索引包含FOR子句
索引签名(供将来使用)
16-235
关键字表达式(未编译;
最多220个字符)1,3
236-455
FOR表达式(未编译;
以null值字节结束,最多220个字符)
456-511
索引结点记录
00-01
指向当前结点左结点的指针(在同一层次上;
指向当前结点右结点的指针(在同一层次上;
12-511
最多有500个字符,其中包括关键字长度的值,以及一个四字节的十六进制数表示(按照一般的自左而右的格式存储):
如果结点为叶结点(属性=02或03),这四个字节包含以十六进制格式表示的实际表记录编号;
否则,这四个字节包含内联索引指针2。
字节02-03,指定在这组字符中关键字/四字节十六进制数组合出现的次数。
1关键字类型并不存储在索引中。
必须由关键字表达式确定。
2除了字符串、关键字值和叶结点中四字节数以外的所有数值均以保留码(Intel8086格式)表示。
3使用数字作为关键字时要经过特殊处理。
将使用下列算法转换数字,使得它们可以按照与字符相同的ASCII的排序序列进行排序。
将数转换为IEEE浮点数格式。
交换字节的顺序,从Intel8086顺序转换为自左而右的顺序。
如果是负数,则对该数逻辑求反(交换全部的64位,1变成0,0变成1);
否则,只对最左边的位求反。
排序树结构示例
在下面结构中查找关键字时,需要在根结点和叶结点之间的某个路径上搜索。
在最低层上的结点是叶结点。
因为关键字已进行了排序,因而子树中的所有关键字均小于或等于父结点的关键字。
上图中,使用字母作为关键字值。
另外,每个关键字之后还有一个四字节的十六进制数。
与叶结点中关键字相关联的数是实际的表编号—其他结点中的关键字都有与之关联的内联索引指针。
索引结点记录的12—511字节可分解如下:
在12—511字节中,关键字值/十六进制数组合共出现n次,n为现有关键字的数目。
宏文件的格式(.fky)
文件头
01-03
签名,十六进制79FF
04-15
忽略
16-17
宏的数目(二进制)
18-end
宏
单独宏
00-19
宏名
20-21
宏长度(以键击数表示,二进制)
22-23
键击(两字节,二进制)
24-end
宏键击
文件扩展名与文件类型
本表列出了VisualFoxPro使用的文件扩展名及其关联的文件类型。
扩展名
.act
向导操作图的文档
.app
生成的应用程序或ActiveDocument
.cdx
复合索引
.chm
编译的HTMLHelp
.dbc
数据库
.dbf
表
.dbg
调试器配置
.dct
数据库备注
.dcx
数据库索引
.dep
相关文件(由“安装向导”创建)
.dll
Windows动态链接库
.err
编译错误
.esl
VisualFoxPro支持的库
.exe
可执行程序
.fky
.fll
FoxPro动态链接库
.FMT
格式文件
.FPT
表备注
.FRT
报表备注
.frx
报表
.fxp
编译后的程序
.h
头文件(VisualFoxPro或C/C++程序需要包含的)
.hlp
WinHelp
.htm
HTML
.idx
索引,压缩索引
.lbt
标签备注
.lbx
.log
代码范围日志
.lst
向导列表的文档
.mem
内存变量保存
.mnt
菜单备注
.mnx
.mpr
生成的菜单程序
.mpx
编译后的菜单程序
.ocx
ActiveX控件
.pjt
项目备注
.pjx
.prg
程序
.qpr
生成的查询程序
.qpx
编译后的查询程序
.sct
表单备注
.scx
表单
.spr
生成的屏幕程序(只适用于FoxPro以前的版本)
.spx
编译后的屏幕程序(只适用于FoxPro以前的版本)
.tbk
备注备份
.txt
文本
.vct
可视类库备注
.vcx
.vue
FoxPro2.x视图
.win
窗口文件
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VFP 文件 结构 文档