Nano Hash - криптовалюты, майнинг, программирование

чтение содержимого MAB-файлов адреса Thunderbird

У меня есть несколько списков адресов в моей адресной книге TBIRD.

каждый раз, когда мне нужно отредактировать адрес, который содержится в нескольких списках, очень сложно найти, какой список содержит адрес, который нужно изменить.

В качестве справочного инструмента я хочу прочитать несколько файлов и просто дал пользователю список, какие файлы xxx.MAB включают искомый адрес только при одном поиске.

Имея созданный список, пользователь может просто перейти к редактированию нужного списка адресов.

Хотелось бы знать как минимум формат упомянутых файлов MAB, чтобы я мог ОТКРЫТЬ + ПОИСК строк в файлах.

заранее спасибо

цзюань

PD попросил форум Mozilla, но Mozilla не планирует объединять адреса в одном мастер-файле и иметь разные списки, содержащие только ссылки на мастер. Есть один человек, который думает сделать это, но он понятия не имеет, когда из-за нехватки ресурсов,

на этом форуме есть аналогичный вопрос, в котором упоминаются файлы MORK, но мой фактический TBIRD выглядит так, что все адреса содержатся в файлах MAB.

24.07.2013

  • Файлы MAB имеют формат Mork... 01.09.2013

Ответы:


1

Боюсь, нет ответа, который даст вам правильное решение этого вопроса.

MORK — это текстовая база данных, содержащая файлы данных адресной книги (.mab файлов) и сводки почтовых папок (.msf файлов).

Формат, написанный Дэвидом Маккаскером, представляет собой смесь различных числовых пространств имен, недокументирован и, похоже, больше не разрабатывается/не поддерживается/поддерживается. Единственный способ, которым вы могли бы получить контроль над этим, - это реконструировать его параллельно с просмотром исходного кода с использованием этого формата.

Однако были опытные люди, которые безуспешно пытались написать парсеры для этого формата файлов. Согласно Википедии, бывший инженер Netscape Джейми Завински сказал об этом формате:

... самый повреждающий мозг формат файла, который я когда-либо видел за свою девятнадцатилетнюю карьеру

На на этой странице указано следующее:

Вкратце, посчитаем его (Морка) грехи:

  • Два разных числовых пространства имен, которые перекрываются.
  • Он не может решить, какой синтаксис кавычек использовать: обратную косую черту? Шестнадцатеричная кодировка со знаком доллара?
  • Иногда допустимы строчные комментарии C++, но иногда // — это просто пара символов в URL-адресе.
  • Он идет на все эти серьезные усилия по сжатию (две разные хеш-таблицы с промежуточной строкой), а затем записывает строки Unicode без использования UTF-8: записывает распакованные символы wchar_t!
  • Хуже того, он шестнадцатерично кодирует каждый wchar_t с 3-байтовой кодировкой, что означает, что размер файла будет 3x или 6x (в зависимости от того, является ли whchar_t 2 байта или 4 байта).
  • Он маскируется под «текстовый» формат файла, хотя на самом деле это просто еще один двоичный файл BLOB-объектов, за исключением того, что он представляет все свои магические числа в ASCII. Он не читается человеком, его нельзя редактировать вручную, поэтому единственное преимущество в том, что он использует короткие строки и не использует двоичные символы, заключается в том, что он делает файл больше. Ой, подождите, моя ошибка, на самом деле это вовсе не преимущество».

Здесь сквозит разочарование, и очевидно, что это непростая задача.

Следовательно, вне продуктов Mozilla, по-видимому, не существует парсеров, способных анализировать этот формат.

В прошлом я реконструировал сложные форматы файлов и знаю, что это можно сделать при наличии терпения и нужного количества энергии.

К сожалению, это, похоже, и ваш единственный вариант. Для начала неплохо было бы взглянуть на исходный код Thunderbird.

Я знаю, что это не дает вам прямого решения, но я думаю, что это единственный ответ на вопрос, учитывая обстоятельства для этого формата.

И, конечно же, вы всегда можете заглянуть в API расширений, чтобы узнать, позволяет ли это вам для доступа к нужным данным более структурированным способом, чем прямая обработка формата файла.

30.08.2013

2

Пример кода, который читает mork

Node.js: https://www.npmjs.com/package/mork-parser

Perl: http://metacpan.org/pod/Mozilla::Mork

Python: https://github.com/KevinGoodsell/mork-converter

Дополнительные ссылки: https://wiki.mozilla.org/Mork

01.09.2013
  • Вопрос о файлах MAB, а не о файлах Mork. Вы подразумеваете, что ссылки Mork также помогут MAB? 01.09.2013
  • Как отмечено в ответе Кена и в моем комментарии к вопросу, файлы MAB имеют формат Mork. Также отмечено здесь: wiki.mozilla.org/Address_Book 02.09.2013
  • Модуль Perl Mozilla::Mork отлично работал для моих нужд. 11.01.2019
  • Код python больше не работает (и в любом случае ограничен python2). Но я нашел ссылку на demork в вики Mozilla, которая отлично справилась с задачей из коробки: bug241438.bmoattachments.org/attachment.cgi?id=175024 18.08.2020
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..