Как написать файл формата файла Mork на Java?

StackOverflow https://stackoverflow.com/questions/2482105

  •  21-09-2019
  •  | 
  •  

Вопрос

Я работаю над проектом, который включает в себя написание файла Mork (Mork — это формат базы данных, используемый Mozilla для хранения истории URL-адресов и другой информации). В последней версии Mozilla 3.0 он был заменен расширенной версией SQLite.

Теперь у меня есть код для анализа файла Морка, но я немного борюсь с этой частью файла.

<(A9=3)(81=)(82=hunter@huntfish.net)(80=0)(85=2)(86=4ac18267)(83=1)
  (87=Sumit)(88=Ghosh)(89=Sumit)(8A=xxx@gmail.com)(8B
    =mc@mpcsol.com)(8C=512-282-2509)(8D=+504-9907-1342)(8E=512-282-2510)
  (8F=512-282-2511)(90=512-282-2512)(91=Two Blocks Past Oxen Team)(92
    =Villa Alicia)(93=Siguatepeque)(94=Comayagua)(95=NA)(96=Honduras)
  (97=9309 Heatherwood Dr)(98=Apartment 1)(99=Austin)(9A=TX)(9B=78748)
  (9C=USA)(9D=Programmer)(9E=Programming)(9F=MPC Solutions)(A0
    =rentaprogrammer)(A1=http://www.mpcsol.com)(A2
    =http://www.jesuslovesthelittlechildren.org)(A3=Hannah)(A4=John)
  (A5=Faith)(A6=Timothy)(A7=Some notes go here.)(A8
    =sale-bbwmb-1628311327@craigslist.org)>
{1:^80 {(k^C0:c)(s=9)} 
  [1:^82(^BF=3)]
  [1(^83=)(^84=)(^85=)(^86=)(^87=)(^88=)(^89^82)(^8A^82)(^8B=)(^8C=)
    (^8D=)(^8E=0)(^8F=2)(^90=0)(^91=)(^92=)(^93=)(^94=)(^95=)(^96=)
    (^97=)(^98=)(^99=)(^9A=)(^9B=)(^9C=)(^9D=)(^9E=)(^9F=)(^A0=)(^A1=)
    (^A2=)(^A3=)(^A4=)(^A5=)(^A6=)(^A7=)(^A8=)(^A9=)(^AA=)(^AB=)(^AC=)
    (^AD=)(^AE=)(^AF=)(^B0=)(^B1=)(^B2=)(^B3=)(^B4=)(^B5=)(^B6=)(^B7=)
    (^B8=)(^B9=)(^BA=)(^BB=)(^BC^86)(^BD=1)]
  [2(^83^87)(^84^88)(^85=)(^86=)(^87^89)(^88=)(^89^8A)(^8A^8A)(^8B^8B)
    (^8C=)(^8D=)(^8E=2)(^8F=0)(^90=1)(^91^8C)(^92^8D)(^93^8E)(^94^8F)
    (^95^90)(^96=)(^97=)(^98=)(^99=)(^9A=)(^9B^91)(^9C^92)(^9D^93)(^9E^94)
    (^9F=NA)(^A0^96)(^A1^97)(^A2^98)(^A3^99)(^A4=TX)(^A5^9B)(^A6^9C)
    (^A7^9D)(^A8^9E)(^A9^9F)(^AA^A0)(^AB=)(^AC=)(^AD=)(^AE=)(^AF=)(^B0=)
    (^B1=)(^B2^A1)(^B3^A2)(^B4=)(^B5=)(^B6=)(^B7^A3)(^B8^A4)(^B9^A5)
    (^BA^A6)(^BB^A7)(^BC=0)(^BD=2)]
  [3(^83=)(^84=)(^85=)(^86=)(^87=)(^88=)(^89^A8)(^8A^A8)(^8B=)(^8C=)
    (^8D=)(^8E=0)(^8F=0)(^90=0)(^91=)(^92=)(^93=)(^94=)(^95=)(^96=)
    (^97=)(^98=)(^99=)(^9A=)(^9B=)(^9C=)(^9D=)(^9E=)(^9F=)(^A0=)(^A1=)
    (^A2=)(^A3=)(^A4=)(^A5=)(^A6=)(^A7=)(^A8=)(^A9=)(^AA=)(^AB=)(^AC=)
    (^AD=)(^AE=)(^AF=)(^B0=)(^B1=)(^B2=)(^B3=)(^B4=)(^B5=)(^B6=)(^B7=)
    (^B8=)(^B9=)(^BA=)(^BB=)(^BC=0)(^BD=3)]}

Может ли кто-нибудь сказать мне, как эта часть файла Морка связана с данными, приведенными ниже?

бегать:

NickName=,LastModifiedDate=4ac18267,FaxNumberType=,BirthMonth=,LastName=,HomePhone=,WorkCountry=,HomePhoneType=,PreferMailFormat=0,CellularNumber=,FamilyName=,PrimaryEmail=hunter@huntfish.net,AnniversaryMonth=,HomeCity=,WorkState=,HomeCountry=,PhoneticFirstName=,PhoneticLastName=,HomeState=,WorkAddress=,WebPage1=,WebPage2=,HomeAddress2=,WorkZipCode=,_AimScreenName=,AnniversaryYear=,WorkPhoneType=,Notes=,WorkAddress2=,WorkPhone=,Custom3=,Custom4=,Custom1=,Custom2=,PagerNumber=,AnniversaryDay=,WorkCity=,AllowRemoteContent=0,CellularNumberType=,FaxNumber=,PopularityIndex=2,FirstName=,SpouseName=,CardType=,Department=,Company=,HomeAddress=,BirthDay=,SecondEmail=,RecordKey=1,DisplayName=,DefaultEmail=,DefaultAddress=,BirthYear=,Category=,PagerNumberType=,LowercasePrimaryEmail=hunter@huntfish.net,JobTitle=,HomeZipCode=,

NickName=,LastModifiedDate=0,FaxNumberType=,BirthMonth=,LastName=Ghosh,HomePhone=+504-9907-1342,WorkCountry=USA,HomePhoneType=,PreferMailFormat=2,CellularNumber=512-282-2512,FamilyName=,PrimaryEmail=xxx@gmail.com,AnniversaryMonth=,HomeCity=Siguatepeque,WorkState=TX,HomeCountry=Honduras,PhoneticFirstName=,PhoneticLastName=,HomeState=Comayagua,WorkAddress=9309 HeatherwoodDr,WebPage1=http://www.mpcsol.com,WebPage2=http://www.jesuslovesthelittlechildren.org,HomeAddress2=VillaAlicia,WorkZipCode=78748,_AimScreenName=rentaprogrammer,AnniversaryYear=,WorkPhoneType=,Notes=Some notes go here.,WorkAddress2=Apartment 1,WorkPhone=512-282-2509,Custom3=Faith,Custom4=Timothy,Custom1=Hannah,Custom2=John,PagerNumber=512-282-2511,AnniversaryDay=,WorkCity=Austin,AllowRemoteContent=1,CellularNumberType=,FaxNumber=512-282-2510,PopularityIndex=0,FirstName=Sumit,SpouseName=,CardType=,Department=Programming,Company=MPC Solutions,HomeAddress=Two Blocks Past
Oxen Team,BirthDay=,SecondEmail=mc@mpcsol.com,RecordKey=2,DisplayName=Sumit,DefaultEmail=,DefaultAddress=,BirthYear=,Category=,PagerNumberType=,LowercasePrimaryEmail=xxx@gmail.com,JobTitle=Programmer,HomeZipCode=NA,


NickName=,LastModifiedDate=0,FaxNumberType=,BirthMonth=,LastName=,HomePhone=,WorkCountry=,HomePhoneType=,PreferMailFormat=0,CellularNumber=,FamilyName=,PrimaryEmail=sale-bbwmb-1628311327@craigslist.org,AnniversaryMonth=,HomeCity=,WorkState=,HomeCountry=,PhoneticFirstName=,PhoneticLastName=,HomeState=,WorkAddress=,WebPage1=,WebPage2=,HomeAddress2=,WorkZipCode=,_AimScreenName=,AnniversaryYear=,WorkPhoneType=,Notes=,WorkAddress2=,WorkPhone=,Custom3=,Custom4=,Custom1=,Custom2=,PagerNumber=,AnniversaryDay=,WorkCity=,AllowRemoteContent=0,CellularNumberType=,FaxNumber=,PopularityIndex=0,FirstName=,SpouseName=,CardType=,Department=,Company=,HomeAddress=,BirthDay=,SecondEmail=,RecordKey=3,DisplayName=,DefaultEmail=,DefaultAddress=,BirthYear=,Category=,PagerNumberType=,LowercasePrimaryEmail=sale-bbwmb-1628311327@craigslist.org,JobTitle=,HomeZipCode=,

Я ломаю голову уже почти 2 дня, пожалуйста, кто-нибудь из команды Mozilla может помочь, я буду очень признателен.

Это было полезно?

Решение

Я вижу словарь, <...>, и редкий стол, {...}, с тремя рядами, [...]Формат файла Морка подвергся некоторой критике, и состав является заумный в лучшем случае.Я так понимаю, вы пишете парсер на Java?

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

Приложение:Разреженная таблица начинается с первой открывающей скобки. {, и заканчивается последней закрывающей скобкой, }.Я не уверен насчет вложенной таблицы, {(k^C0:c)(s=9)}.Каждая из трёх строк таблицы ограничена скобками: [1(...], [2...], [3...], и каждый соответствует строке на панели запуска.Каждая из ячеек в строке содержит либо ссылку, либо литерал.Например, во второй строке есть ячейка с литералом (^A4=TX), который отображается во второй строке вывода как WorkState=TX.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top