【发布时间】:2019-04-02 22:24:17
【问题描述】:
我正在尝试从数据库文件(其中雇员 c-tree 数据结构)中读取数据。这是一个非常古老的产品,由于各种原因,我不再可以使用 ODBC 驱动程序。
我发现数据基本上只是逐行的“平面文件”。所以我的计划是简单地从文件中读取原始二进制数据,实际上,我自己定制了 ODBC。
使用 c-tree 公司自己提供的工具,我什至能够得到每个字段地址(即从哪里开始)、它的长度(字节数组的长度)和我的列的详细信息假设实际上是在告诉我如何对字段进行编码(见下文):
ADDRESS LENGTH TYPE(encoding?) FIELD NAME
0 8 (128-0x80) CT_ARRAY Reserved
8 4 (59-0x3B) CT_INT4U Record_ID
12 2 (41-0x29) CT_INT2U Type
14 2 (41-0x29) CT_INT2U Changes
16 52 (144-0x90) CT_FSTRING Name
我是否正确假设像“(128-0x80)”这样的东西应该是我需要将该字段解码为实际文本的唯一信息?还是可能有一些我在这里没有考虑的进一步加密?
还有谁能告诉我“(128-0x80)”到底是什么?我将 0x80 识别为十六进制,但 128 是什么意思?至少有了某种术语来描述这件事,我可以做更多的谷歌研究。
提前致谢!
【问题讨论】:
-
您可能会发现文件中有
deleted记录(带有指示已删除/未使用的标志)。最好使用提供的接口/实用程序读取文件 -
如前所述,这不是我的选择。
-
您说 ODBC 不是一个选项。 c-tree 使用带有 c 程序接口的 ISAM 文件。 C接口可用吗?
标签: database character-encoding hex flat-file ctree