【发布时间】:2008-12-31 20:54:30
【问题描述】:
我正在尝试了解 Visual FoxPro 紧凑索引 (*.IDX) 的文件格式。我目前正在参考Microsoft's documentation 寻求指导。
索引是一个 512 字节节点的 B 树。每个叶(“外部”)节点包含多个条目。每个条目由四个数据组成:
- 行号 [固定长度]
- 重复的字节数(文档没有解释这一点)[固定长度]
- 尾随字节数(文档未对此进行解释)[固定长度]
- 键 [可变长度]
条目(没有它们的键)存储在节点的开头,紧跟在节点的 24 字节标头之后。它们的键不包含在此位置,因为键的长度不同,而行号、重复字节数和尾随字节数的长度是固定的。密钥存储在节点的末尾并向后工作。例如:
- 24 字节头
- 行号、重复字节数、尾随字节数(条目 #1)
- 行号、重复字节数、尾随字节数(条目 #2)
- 行号、重复字节数、尾随字节数(条目 #3)
- ...
- 键(条目 #3)
- 键(条目 #2)
- 键(条目 #1)
如何确定键的各个长度?该文档似乎没有指定这一点。它们是完全连续的(没有空字节分隔符)。
我可以通过目测手动隔离按键。我怀疑尾随字节数代表密钥的长度。但是,它与本次检查确定的长度无关。
我相信 FoxPro 文件格式源自 xBase 标准。也许这敲响了警钟?
【问题讨论】:
标签: indexing file-format visual-foxpro foxpro xbase