我在 VB.Net 中将 DBF 作为二进制文件打开以确定结构。我必须这样做,因为使用 Visual Foxpro OLEDB 驱动程序不会返回十进制字段的精度和小数位数。我成功地完成了我的任务,没有任何问题。我遇到的问题是:
字节 0 是 DBF 文件类型。
字节 1-3 是最后一次更新 (yymmdd)。
DBF 文件的字节 4-7 是文件中的记录数。
字节 8-9 是第一个数据记录的位置。
字节 10-11 是一条数据记录的长度,包括删除标志。
(此信息来自http://www.dbf2002.com/dbf-file-format.html)
以下是我的 DBF 文件的前 32 个字节,用连字符分隔:
48-13-2-6-158-0-0-0-168-9-18-3-0-0-0-0-0-0-0-0-0-0-0-0-0- 0-0-0-1-3-0-0
“48”(十六进制 30)表示 Visual Foxpro
字节 1-3 表示该文件最后一次更新是在 2013 年 2 月 6 日。
字节 4-7 表示该文件有 158 条记录。
所有这些都是正确的。
字节 8-9 是 168 和 9,字节 10-11 是 18 和 3。
实际记录大小为 786 字节。由于有 68 个字段,所以第一个数据记录的位置应该是 (68x32+31) = 2207。
我必须进行一些转换才能将 1689 转换为 2207 并将 183 转换为 786?
我已经尝试将 dec 转换为十六进制,反之亦然。