问题描述
我试图用标称值解析sqlite BTree页面(https://www.sqlite.org/fileformat2.html#btree)。
Nom可以很好地解析两个标头(数据库文件标头和btree标头)以及单元指针数组。我现在停留在如何解析单个单元格上。
据我所知,nom只是线性遍历输入,但是我更需要的是随机访问:从单元格指针数组中获取一个值,跳转到页面中的该位置,然后解析它。
这是有效的方法吗?我是否应该将其余的输入内容包装在光标所在的标头之后,并随机访问单元格指针的位置?
我的另一个想法是按升序对单元指针数组进行排序,直到下一个单元开始之前,它只占用尽可能多的字节。这里的问题是每个单元的有效载荷长度变量都包含溢出。我在如何识别该页面上单元有效负载的确切长度方面遇到问题,因为一个空闲块可以跟随一个单元。为此,在开始解析单元块之前,我需要首先解析所有空闲块页面的链接列表,以便检索所有空闲块的位置和长度。但是后来我又回到了随机访问的位置。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)