File 读取thunderbird地址mab文件内容

File 读取thunderbird地址mab文件内容,file,thunderbird,File,Thunderbird,我的TBIRD通讯簿上有几个地址列表 每次我需要编辑一个包含在多个列表中的地址时,要找到哪个列表包含要修改的地址是一件很麻烦的事情 作为一个帮助工具,我想阅读几个文件,并给用户一个列表 xxx.MAB文件仅在一次搜索中包含搜索地址 有了生成的列表,用户只需去编辑正确的地址列表 我想知道一个关于所提到的MAB文件格式的最低限度,所以我可以打开+搜索到文件字符串 提前谢谢 胡安 PD已经询问mozilla论坛,但mozilla没有计划将地址合并到一个主文件中,而不同的列表只包含指向主文件的链接。有一

我的TBIRD通讯簿上有几个地址列表

每次我需要编辑一个包含在多个列表中的地址时,要找到哪个列表包含要修改的地址是一件很麻烦的事情

作为一个帮助工具,我想阅读几个文件,并给用户一个列表 xxx.MAB文件仅在一次搜索中包含搜索地址

有了生成的列表,用户只需去编辑正确的地址列表

我想知道一个关于所提到的MAB文件格式的最低限度,所以我可以打开+搜索到文件字符串

提前谢谢

胡安

PD已经询问mozilla论坛,但mozilla没有计划将地址合并到一个主文件中,而不同的列表只包含指向主文件的链接。有一个人想这样做,但他不知道什么时候由于缺乏资源


在这个论坛上,有一个类似的问题提到了MORK文件,但我的实际TBIRD似乎包含了MAB文件中的所有地址,我恐怕没有答案可以为您提供这个问题的正确解决方案

MORK
是一个文本数据库,包含文件通讯簿数据(
.mab
文件)和邮件文件夹摘要(
.msf
文件)

该格式由David McCusker编写,是各种数字名称空间的混合,没有文档记录,似乎不再被开发/维护/支持。您能够掌握它的唯一方法是对它进行反向工程,同时使用这种格式查看源代码

然而,有经验的人试图为这种文件格式编写解析器,但没有成功。根据维基百科的说法,前网景工程师杰米·扎温斯基(Jamie Zawinski)对格式有这样的看法:

…这是我见过的最伤脑筋的文件格式 我十九年的职业生涯

声明如下:

简言之,让我们数一数它(莫克)的罪恶:

  • 两个不同的数字名称空间重叠
  • 它无法决定使用哪种字符引用语法:反斜杠?带美元符号的十六进制编码
  • C++行注释有时是允许的,但有时//只是URL中的一对字符
  • 它进行所有这些严重的压缩工作(两个不同的字符串插入哈希表),然后写出Unicode字符串 不使用UTF-8:写出未打包的wchar\t字符
  • 更糟糕的是,它用3字节编码对每个wchar\u t进行十六进制编码,这意味着文件大小将是3x或6x(取决于whchar\u t是2) 字节或4字节。)
  • 它伪装成“文本”文件格式,而实际上它只是另一个二进制blob文件,只是它代表了它的所有魔力 ASCII格式的数字。它不是人类可读的,也不是手工编辑的,所以 唯一的好处是它使用短线和 不使用二进制字符是因为它会使文件变大。哦 等等,我错了,这根本不是什么好处。”
挫折在这里闪耀,这显然不是一项简单的任务

因此,Mozilla产品之外显然不存在能够解析这种格式的解析器

我过去曾反向设计过复杂的文件格式,我知道只要有耐心和足够的精力就可以完成

可悲的是,这似乎也是你唯一的选择。一个好的开始就是看看

我知道这并不能给你一个简单的解决方案,但考虑到这种格式的情况,我认为这是这个问题的唯一答案


当然,您可以随时查看,看看这是否允许您以比直接处理文件格式更结构化的方式访问所需的数据。

读取mork的示例代码

Node.js:

Perl:

Python:


更多链接:

MAB文件是Mork格式的……问题是关于MAB文件,而不是Mork文件。你是在暗示Mork链接对MAB也有帮助吗?正如Ken的回答和我对这个问题的评论中所指出的,MAB文件是Mork格式的。这里还提到:Perl的Mozilla::Mork模块对我的需要工作得很好。python代码不起作用但我在mozilla wiki中找到了一个指向“demork”的链接,这在开箱即用的情况下做得非常好: