tags:

views:

58

answers:

1

Iam working on a project which involves writing a Mork File (Mork is a database format used by Mozilla to store url history and other information.) It has been replaced by an enhanced version of SQLite in latest Mozilla 3.0.

Now I have the code for parsing a Mork File , but Iam struggling a bit with this part of the the file.

<(A9=3)(81=)([email protected])(80=0)(85=2)(86=4ac18267)(83=1)
  (87=Sumit)(88=Ghosh)(89=Sumit)([email protected])(8B
    [email protected])(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
    [email protected])>
{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)]}

Can someone tell me how this part of the Mork file relates to the data given below?

run:

NickName=,LastModifiedDate=4ac18267,FaxNumberType=,BirthMonth=,LastName=,HomePhone=,WorkCountry=,HomePhoneType=,PreferMailFormat=0,CellularNumber=,FamilyName=,[email protected],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=,[email protected],JobTitle=,HomeZipCode=,

NickName=,LastModifiedDate=0,FaxNumberType=,BirthMonth=,LastName=Ghosh,HomePhone=+504-9907-1342,WorkCountry=USA,HomePhoneType=,PreferMailFormat=2,CellularNumber=512-282-2512,FamilyName=,[email protected],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=,[email protected],RecordKey=2,DisplayName=Sumit,DefaultEmail=,DefaultAddress=,BirthYear=,Category=,PagerNumberType=,[email protected],JobTitle=Programmer,HomeZipCode=NA,


NickName=,LastModifiedDate=0,FaxNumberType=,BirthMonth=,LastName=,HomePhone=,WorkCountry=,HomePhoneType=,PreferMailFormat=0,CellularNumber=,FamilyName=,[email protected],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=,[email protected],JobTitle=,HomeZipCode=,

I have been breaking my head for almost 2 days now, please someone who is part of the mozilla team can help, it would be really appreciated.

+1  A: 

I see a dictionary, <...>, and a sparse table, {...}, with three rows, [...]. The Mork file format has been subject to some criticism, and the structure is abstruse at best. I take it you're writing a parser in Java?

Addendum: It may help to update your question with details about what progress you've made and where you're getting stuck. If available, a link to your existing parser might be helpful, too.

Addendum: The sparse table begins with the first opening brace, {, and ends with the last closing brace, }. I'm not sure about the nested table, {(k^C0:c)(s=9)}. Each of the three rows in the table is delimited by brackets: [1(...], [2...], [3...], and each corresponds to a row in your run panel. Each of the cells in a row contains either a reference or a literal. For example, row 2 has a cell with a literal, (^A4=TX), which shows up in row 2 of the output as WorkState=TX.

trashgod
No you got me wrong I guess, I have the parser code already with me, I am writing code for writing a mork file from a Name Value Pair, lets say a HashMap
Sumit Ghosh
I appreciate your accepting my answer, but I sense it was minimally helpful. See http://meta.stackoverflow.com/questions/7046/how-to-get-attention-for-your-old-unanswered-questions
trashgod
Can you point out the sparse table? I mean the lines ?
Sumit Ghosh