关于kindle mobi词典解析

纯文字版

1.关于mobi正文分块
https://wiki.mobileread.com/wiki/PDB#Palm_Database_Format
mobi正文分了若干块正文块的信息在文章开头偏移78个字节的位置

2.关于mobi头文件

字段位置都要加上 正文分块信息的偏移

详情见:https://wiki.mobileread.com/wiki/MOBI#Format

我们现在只关注需要的信息:判断mobi是否为一本词典的标志为字段96和100,判断是否有索引为60 metaOrthIndex

和64

 

3.关于词典索引

词典有多个个索引区,metaOrthIndex为索引区的开始位置,每个区解压后最多为65536个字节,索引区有 idex判断该区是否是索引区,第一个索引区一般比较小,包含的信息有索引块的总个数,索引可能用到的公共字符count索引的个数,hordt1公共字符块,每个索引都占8个字节前四个字节索引内容所在的位置startpos,后四字节索引在正文所在的位置endpos。索引内容是连续的并且为有序的,排序方式为去掉标点符号和数字后并且大写转小写后得到的usc-2对应的顺序

 

4.关于查词

由于词典索引是有序的,查词的为二分查询效率最佳,先查每个区的头一个索引确定是哪个区,再在区内进行查询;查询正文是由于每个块在解压后固定长度或者是记录好的长度,这样先确定是哪个块数据再解压得到索引的正文。

c++解析代码版:https://blog.csdn.net/wing_yue/article/details/87713189

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值