读取thunderbird地址mab文件内容

2024-03-08

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

每次我需要编辑包含在多个列表中的地址时,查找哪个列表包含要修改的地址都是一件很痛苦的事情。

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

有了生成的列表,用户可以简单地编辑正确的地址列表。

我想至少了解上述 MAB 文件的格式,这样我就可以在文件中打开 + 搜索字符串。

提前致谢

juan

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

在这个论坛上有一个类似的问题提到 MORK 文件,但我的实际 TBIRD 看起来像是 MAB 文件中包含所有地址


恐怕没有答案可以为您提供此问题的正确解决方案。

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

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

然而,有经验丰富的人试图为这种文件格式编写解析器,但没有成功。根据维基百科,前 Netscape 工程师 Jamie Zawinski 对于这种格式是这样说的:

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

这一页 https://wiki.mozilla.org/Address_Book陈述如下:

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

  • 两个不同的数字命名空间重叠。
  • 它无法决定使用哪种字符引用语法:反斜杠?带美元符号的十六进制编码?
  • 有时允许 C++ 行注释,但有时 // 只是 URL 中的一对字符。
  • 它进行所有这些认真的压缩工作(两个不同的字符串驻留哈希表),然后写出 Unicode 字符串 不使用 UTF-8:写出解压的 wchar_t 字符!
  • 更糟糕的是,它使用 3 字节编码对每个 wchar_t 进行十六进制编码,这意味着文件大小将为 3 倍或 6 倍(取决于 whchar_t 是否为 2) 字节或 4 字节。)
  • 它伪装成“文本”文件格式,而实际上它只是另一个二进制 blob 文件,只不过它代表了它的所有魔力 ASCII 数字。它不是人类可读的,也不是手动编辑的,所以 唯一的好处是它使用短线并且 不使用二进制字符的原因是它会使文件更大。哦 等等,我的错误,这实际上根本不是一个好处。”

挫败感在这里闪耀,这显然不是一个简单的任务。

因此,Mozilla 产品之外显然不存在实际上能够解析此格式的解析器。

我过去曾对复杂的文件格式进行逆向工程,并且知道只要有耐心和适量的精力就可以完成。

可悲的是,这似乎也是您唯一的选择。一个好的起点是看一下雷鸟的源代码 https://developer.mozilla.org/en-US/docs/Developer_Guide/Source_Code/Downloading_Source_Archives.

我知道这并不能为您提供直接的解决方案,但考虑到这种格式的情况,我认为这是该问题的唯一答案。

当然,您可以随时查看扩展API https://addons.mozilla.org/en-US/developers/看看这是否允许您以比直接处理文件格式更结构化的方式访问所需的数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

读取thunderbird地址mab文件内容 的相关文章

  • 用 C 将位写入文件

    我有这个字符串 101 我想用 C 语言将其写入文件 而不是文本 101 等 8 位 x 字符 但直接使用字符串作为位 位 1 位 0 和位 1 这样文件将是3位 有可能吗 我在网上搜索并尝试这样做 char c 25 101 FILE b
  • 如何在Java中读取文件的最后“n”个字节

    如何在不使用 RandomAccessFile 的情况下从文件中读取最后 n 个字节 我的文件中的最后 6 个字节包含写回文件时的重要信息 我需要写入原始文件 然后将最后 6 个字节附加到其他地方 有什么指导吗 谢谢 你必须使用随机存取文件
  • 从 Java 访问文件名中带有空格的文件

    我想从java程序访问文件名中有空格的目录中的文件 但它不访问文件 场景是我在文件中有文件名 iread 从该文件中读取文件名 但无法在 java 中打开带有空格的文件 我们使用 File exist 函数来检查文件是否存在 但它返回 fa
  • 如何解决:使用 .csv Dictreader 导入文件的 Python 因未定义字符而失败

    首先 我发现下列 https stackoverflow com questions 38019379 python unicodedecodeerror utf8 codec cant decode byte 0x91这与我的问题基本相同
  • Linux下对多个文件进行排序

    我有多个 很多 文件 每个都非常大 file0 txt file1 txt file2 txt 我不想将它们合并到一个文件中 因为生成的文件将超过 10 场演出 每个文件中的每一行都包含一个 40 字节的字符串 现在字符串的排序相当好 大约
  • Android 11 - 访问我的应用程序 Android/Data 文件夹中的文件

    由于某种原因 我真的很挣扎 希望有人能帮助我指明正确的方向 我的目标是 Android 11 API 30 这似乎是所有问题的根源 降低目标可能对我有用 但谷歌似乎最终会迫使我走上这条路 所以我不妨弄清楚这一点 我的应用程序通常会按照标准写
  • 错误:安装 ffi 时出错:错误:无法构建 gem 本机扩展

    我在 Mac 64 位系统中遇到此错误 并且机器上安装了 xcode Building native extensions This could take a while ERROR Error installing ffi ERROR F
  • 如何在 Spring Boot 中从 resolurces 文件中读取文件夹,:从 Jar 运行时出现错误

    我正在尝试下面的代码 我在其中读取文件并从资源文件夹执行 File fileList new File getClass getResource jsonData toURI listFiles for File file fileList
  • PHP 一次只能看到 20 个上传文件

    当我尝试一次上传超过 20 个文件时 网络服务器只能看到前 20 个文件 任何其他文件都会被忽略 问题是什么 简单的代码可以尝试
  • 如何用php将文件内容转换为字节数组

    我想用PHP将上传的文件保存 插入 到数据库中 数据库字段的类型是varbinary 最后 我想要获得 VarBinary 输出 的内容 就像在 C 中读取文件然后将其存储在字节数组中并将数组插入到 VarBinary 中一样 我与数据库的
  • Mac 操作系统的 windows.h 替代品

    早上好 我正在使用 Codeblock c 程序进行编程 但是 我需要使用窗口 h and conio h MacBook 上没有这个头文件 拜托 你能帮我吗 不起作用的来源 void gotoxy int x int y COORD co
  • 将 PHP 变量保存到文本文件

    我想知道如何将 PHP 变量保存到 txt 文件 然后 再次检索它们 Example 有一个输入框 提交后写的东西 输入框将被保存到文本文件中 稍后需要结果 作为变量带回 假设变量是 text I 需要将其保存到文本文件并能够将其检索回来
  • java JFileChooser 文件大小过滤器

    我知道我可以按文件类型进行过滤 但是可以按文件大小进行过滤吗 例如 JFileChooser 仅显示 3 MB 以内的图片 简短的回答应该是 你尝试过什么 长答案是肯定的 JFileChooser fc new JFileChooser f
  • 如何在 Windows 7 中使用 Python 廉价地创建非常大的文件? [复制]

    这个问题在这里已经有答案了 可能的重复 在Windows系统上快速创建大文件 https stackoverflow com questions 982659 quickly create large file on a windows s
  • C++ 输出到文本文件时换行符[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 这只是一个简单的问题 但我正在尝试将
  • 如何重命名 GitHub 网站上的目录/文件夹?

    我在 GitHub 网站上找到了一种方法rename https github com blog 1436 moving and renaming files on github一个文件并成功完成 我也找到了一种方法rename https
  • 单击一次文件丢失

    将 Clickonce 与 VS 2010 和 NET Framework Client profile 3 5 一起使用 我有几个文件夹 其中包含运行时所需的应用程序级 XML 和 或文本文件 这些文件夹位于要使用它们的同一项目中 这些文
  • 视图无法解析为类型

    这里的视图似乎有什么问题 我该如何解决它 错误 视图无法解析为类型 public void onItemClick AdapterView
  • C++:获取器和设置器?

    我正在尝试编写一些代码来为以下数据的 ID 号 名字 姓氏 期中成绩和期末成绩创建 getter 和 setter 这些数据位于我正在编写的班级的文本文件中 10601 ANDRES HYUN 88 91 94 94 89 84 94 84
  • 从文本文件 PHP 读取数据

    我只是想知道如何在 php 中读取文本文件 我想让它显示文本文件中的最后 200 个条目 每个条目都在一个新行上 Like John White Jane Does John Does Someones Name 等等 Thanks Use

随机推荐

  • 如何在Android中设置EditText的最小和最大字符限制?

    我想设置 EditText 框的最小和最大输入值 我正在为 EditText 创建一个简单的验证 它采用 A Z 和 0 9 值 最小 5 个字符 最大 8 个字符 我设置最大验证和其他验证如下
  • 通过不同的容器修改std容器的内容

    我不知道这是否是正确的方法 但我认为它解释了我想要实现的目标 我有三个向量 std vector
  • 如何检查postgres用户是否存在?

    createuser允许在 PostgreSQL 中创建用户 ROLE 有没有一种简单的方法来检查该用户 名称 是否已经存在 否则 createuser 返回错误 createuser creation of new role failed
  • 在 GKE 下时拒绝EscalatingExec

    我们将 GKE 与 Kubernetes 集群结合使用 我们正在运行的应用程序之一是 Jenkins for CI 不幸的是 Jenkins Slave 需要使用 Docker 来挂载其主机的docker sock 这可能是一种升级漏洞 解
  • 当出现客户端未知错误时如何在 Perforce P4 中设置客户端根

    突然 当我跑步时p4 info在终端中 我注意到客户端根目录未设置 不知道为什么它突然被取消设置 以下是输出 其中显示 客户端未知 代替客户端根目录 我可以通过什么命令设置一样吗 我试过了p4 client and p4 set但可能是 语
  • 使用 Google Analytics for Android SDK 时遇到的问题 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 使用适用于 Android 的 Go
  • Python Flask 在执行函数的同时返回 html 页面

    我目前正在使用 Python Flask 创建一个 Web 应用程序 但我遇到了障碍 我不确定我是否正确地思考了它 因此 我网站的主页只是一个简单的登陆页面 其中包含执行网站功能所需的文本输入 我想要完成的是让网络应用程序在输入文本后执行两
  • 如何从部分视图将 JavaScript 渲染到 MasterLayout 部分?

    给定 MVC3 和 Razor 引擎 我得到 MasterLayout cshtml RenderSection JavaScript required false RenderBody 查看 cshtml MasterLayout csh
  • 为变量名称添加前缀以指示它们各自的范围或来源?

    在我工作过的公司中 我见过很多使用前缀来指示变量的范围或来源的情况 例如m对于班级成员来说 i对于方法内部变量和a or p 对于方法参数 public class User private String mUserName public
  • Android 媒体播放器错误 (-19, 0)

    我尝试在单击按钮时重播声音 但我得到错误 19 0 这意味着什么 My code final Button xxx Button findViewById R id xxx xxx setOnClickListener new View O
  • Azure 网站和 Sass

    我一直在尝试寻找是否有一种方法可以通过 windows azure 网站支持 sass 有人可以向我指出一些文档吗 或者如果可能的话现在就让我知道 我特别希望支持祖布基金会 http foundation zurb com index ht
  • Pandas:如果预定义列表中不存在,则将列值替换为空

    我有一个清单 X 其中包含列的一组合法值 说吧 我有专栏A 我想替换 设置 为空字符串 中的元素df A 如果它们的值不在 X 中 我怎样才能在 Pandas 中有效地做到这一点 我知道有isin 但这只是检查值是否存在并返回一系列 Tru
  • 通过Windows中的命令行工具合并两个png?

    我正在寻找一个可以通过命令行 Windows 7 使用的工具来合并两个相同大小的 png 到目前为止 我在搜索方面运气不佳 因为我见过的大多数工具都是相当笨重的应用程序 它们似乎不针对简单的操作 我想用覆盖图像中的非透明像素覆盖不透明基本图
  • 情节 orca 无法在 aws ec2 实例上工作

    我跟着this https github com plotly orca安装conda plotly orca在 AWS EC2 实例上 构建于anaconda python3图像 但击中Cannot open shared object调
  • WIX如何从自定义操作访问源文件

    我有一个 WIX 安装应用程序和许多源文件
  • 如何防止行高在顶部添加边距?

    每当我使用大line height like 1 6em它总是在文本的最顶部添加我不想要的边距 例子 http jsfiddle net EstpJ 1 http jsfiddle net EstpJ 1 我希望文本的边框清晰 并且没有任何
  • 分布式erlang安全如何?

    我想要有 2 个独立的 erlang 节点可以相互通信 so node a myhost将能够发送消息至b myhost 有没有办法限制节点a myhost 所以只有来自 a 的函数安全模块可以被召唤b myhost 它应该是这样的 a m
  • twitter bootstrap - 背景颜色

    我正在尝试更改引导程序的背景颜色和不透明度 我有以下 CSS well opacity 0 9 opacity 0 1 moz opacity 0 9 opacity 0 1 webkit opacity 0 9 opacity 0 1 b
  • CodeIgniter 中视图中的 $this 关键字

    我试图理解如何 this gt load gt view works insideCodeIgniter 中的视图文件的一部分 core Controller php 正在调用 core Loader php 然后调用 ci load 后者
  • 读取thunderbird地址mab文件内容

    我的 TBIRD 地址簿上有几个地址列表 每次我需要编辑包含在多个列表中的地址时 查找哪个列表包含要修改的地址都是一件很痛苦的事情 作为一个帮助工具 我想阅读几个文件 并只给用户一个列表 xxx MAB 文件仅包含一次搜索的搜索地址 有了生