2013-07-24 129 views
7

我有幾個地址列表在我的TBIRD地址簿上。閱讀thunderbird地址mab文件內容

每次我需要編輯一個包含在幾個列表中的地址,是一個痛苦的脖子上找到哪個列表包含要修改的地址。

作爲一個幫助工具,我想閱讀幾個文件,並只給了用戶一個列表,其中包含搜索地址的xxx.MAB文件包括搜索到的地址。

具有產生的列表,用戶可以簡單地去編輯正確的地址列表。

想知道關於提到的MAB文件格式的最低限度,所以我可以打開+搜索字符串到文件中。

在此先感謝

PD問Mozilla的論壇,但目前還沒有從Mozilla計劃,以鞏固在一個主文件的地址,並有不同的名單只是包含鏈接到主。有一個人想這樣做,但他不知道什麼時候由於缺乏資源,

在這個論壇上有一個提到MORK文件的類似問題,但是我的實際TBIRD看起來像是所有地址都包含在MAB上文件

+0

MAB文件是莫克格式... – Stobor

回答

9

恐怕沒有答案會給你這個問題的適當解決方案。

MORK是一個包含文件地址簿數據(.mab文件)和郵件文件夾摘要(.msf文件)的文本數據庫。

該格式由David McCusker編寫,是各種數字命名空間的組合,並且沒有記錄,似乎不再被開發/維護/支持。你能夠掌握它的唯一方法是使用這種格式對源代碼進行逆向工程。

但是,有經驗的人試圖爲這種文件格式編寫解析器而沒有任何成功。根據維基百科的前網景工程師傑米·薩溫斯基是這樣說的格式:

...這是我所見過的 我19年職業生涯中最腦損傷文件格式

This page規定如下:

簡單地說,讓我們計算其(莫克的)罪:

  • 兩個不同的數字名稱空間重疊。
  • 它無法確定使用什麼樣的字符引用語法:反斜槓?十六進制編碼與美元符號?
  • 有時會允許C++行註釋,但有時//只是URL中的一對字符。
  • 它道出了這一切嚴重壓縮的努力(兩個不同的字符串實習哈希表),然後寫出Unicode字符串 不使用UTF-8:寫出解壓wchar_t的字符!
  • 更糟的是,它己編碼具有3個字節的編碼每個wchar_t的,這意味着文件的大小將是3倍或6倍(取決於是否whchar_t是2個 字節或4個字節。)
  • 它僞裝爲「文本「文件格式,實際上它只是另一個二進制BLOB文件,只不過它代表了所有ASCII碼的神奇 數字。這不是人類可讀的,它不是手工編輯的,所以 還有就是它使用短線和 不使用二進制字符的事實,唯一的好處是,它使文件較大。哦 等待,我的錯誤,就是沒有實際好處可言。」

挫折照經過這裏,它顯然不是一個簡單的任務。

因此顯然存在不存在解析器,實際上是能夠解析這種格式Mozilla產品之外。

我在過去的逆轉工程複雜的文件格式,並知道它可以用耐心和能量的適量進行。

可悲的是,這似乎也是你唯一的選擇。開始的好地方是看看Thunderbird's source code

我知道這不會給你一個直線上升的解決方案,但我認爲這是唯一的答案來考慮這種格式的情況下的問題。

當然,您可以隨時查看extension API,看看是否允許您以比直接處理文件格式更結構化的方式訪問所需的數據。