在VC中如何创建DBF格式的表格,最好能够有实例代码?
------解决方案--------------------------------------------------------
是创建DBF表吧,不应该是表格,这是两回事。
1、VC有没有导出DBF或Excel功能。
2、参考一下DBF表的文件格式:
表文件结构 (.dbc, .dbf, .frx, .lbx, .mnx, .pjx, .scx, .vcx)
相关信息
全部折叠 全部展开
Visual FoxPro 使用表来储存定义不同文件类型的数据。下面的列表包含了储存为表的文件类型:
数据库(.dbc)
表单(.scx)
标签(.lbx)
菜单(.mnx)
项目(.pjx)
报表(.frx)
表(.dbf)
可视类库(.vcx)
由于这些文件实际上是表,因此,可以用浏览任何表文件的同样方式来使用和浏览这些文件。
一个表文件由头记录和数据记录组成。头记录定义表的结构和并包含与表有关的任何其他信息。头记录开始于文件位置 0。数据记录以连续的字节跟随着头记录,并包含字段中的实际文本。
注意:
数据文件中的数据开始于头记录 8 到 9 字节中指出的位置。数据记录以删除标记字节开始,如果该字节是一个 ASCII 空格(0x20),则该记录没有删除。如果这个首字节是一个星号(0x2A),则该记录已删除。来自字段子记录中指定字段的数据跟随着删除标记。
以字节为单位的记录长度,由所有字段已定义长度的和确定。表文件中的整数首先储存高位字节。
有关不同文件类型表结构的信息,请参见 表文件的表结构。
表头记录结构
偏移字节 描述
0
文件类型:
0x02 FoxBASE
0x03 FoxBASE+/Dbase III plus,没有备注
0x30 Visual FoxPro
0x31 Visual FoxPro,启用自动增量
0x32 Visual FoxPro,启用 Varchar、Varbinary 或 Blob
0x43 dBASE IV SQL 表文件,没有备注
0x63 dBASE IV SQL 系统文件,没有备注
0x83 FoxBASE+/dBASE III PLUS,带有备注
0x8B dBASE IV 带有备注
0xCB dBASE IV SQL 表文件,带有备注
0xF5 FoxPro 2.x (或以前)带有备注
0xFB FoxBASE
1 - 3
最后更新(YYMMDD)
4 – 7
文件中的记录数
8 – 9
第一条数据记录的位置
10 – 11
一条数据记录的长度,包括删除标记
12 – 27
保留
28
表标记:
0x01 带有结构 .cdx 的文件
0x02 带有 Memo 字段的文件
0x04 是数据库(.dbc)的文件
该字节可以包含任何上述值的和。例如:0x03 值表示该表带有结构 .cdx 和 Memo 字段。
29
代码页标记
30 – 31
保留,包含 0x00
32 – n
字段子记录
字段数决定了字段子记录的数量。表中的每个字段都存在一个字段子记录。
n+1
头记录终止符(0x0D)
n+2 to n+264
一个 263 字节的范围,包含了相关数据库(.dbc)文件相对路径的后链信息。如果第一个字节是 0x00,则该文件不于数据库关联。因此,数据库文件总是包含 0x00。
字段子记录结构
偏移字节 描述
0 – 10
带有 10 个字符最大值的字段名。如果小于 10,则用空字符(0x00)填补。
11
字段类型:
W - 二进制大型对象(Blob)
C – 字符(Character)
C – 字符(二进制)(Character (binary))
Y – 货币(Currency)
B – 双精度(Double)
D – 日期(Date)
T – 日期时间(DateTime)
F – 浮点(Float)
G – 通用(General)
I – 整型(Integer)
L – 逻辑(Logical)
M – 备注(Memo)
M – 备注(二进制)(Memo (binary))
N – 数值(Numeric)
P – 图片(Picture)
Q - 可变长度二进制(Varbinary)
V - 可变长度字符(二进制)(Varchar (binary))
注意:
对于每个 Varchar 和 Varbinary 字段,在最后一个系统字段(一个隐藏字段,储存所有可以为 Null 的字段的 Null 状态)中被分配一位或“varlength”位。如果 Varchar 或 Varbinary 字段可以为 Null,则 Null 位跟随在“varlength”位后。如果“varlength”位被设置为 1,实际字段值长度的长度被储存在该字段的最后字节中。否则,如果该位被设置为 0,该值的长度等于字段大小。
12 – 15
记录中字段的偏移量
16
字段长度(字节数)
17
小数位数
18
字段标记:
0x01 系统列(对用户不可见)
0x02 可以储存 Null 值的列
0x04 Binary 列(只用于 CHAR 和 MEMO)
0x06 (0x02+0x04) 当字段是 NULL 和 Binary(Integer、Currency 和 Character/Memo 字段)
0x0C 自动增量列
19 - 22
自动增量的 Next 值
23
自动增量的 Step 值
24 – 31
保留
有关每条记录字符数限制、最多字段数等信息,请参见 Visual FoxPro 系统功能。
解释
当打开或添加字段值的自动增量时,Visual FoxPro 会修改表头。
除非在该文件中添加了下列其中一个功能,否则,Visual FoxPro 不会修改被储存为 FoxPro 2.x 文件格式的文件头:
Null 值支持
DateTime、Currency 和 Double 数据类型
被标记为 Binary 的 CHAR 或 MEMO 字段
被添加到数据库(.dbc)文件的表
提示:
可以使用下列公式返回表文件中的字段数:(x – 296/32)。在该公式中,x 是第一条记录的位置(表头记录中的 8 到 9 字节),296 是 263 (后链信息) + 1 (头记录终止符) + 32 (第一个字段子记录),并且,32 是字段字记录的长度。