FasdUAS 1.101.10 k l OI Written by: Sean Long On: 09/01/2004 From: http://www.hailstonesoftware.com Purpose: Create a CSV(comma separated value) file of all entries in Mac OS X Address Book. This CSV file can then be saved to disk and used to import the Address Book data into Mozilla Thunderbird. License: free to use how you choose.  l  l O  k I .miscactv******** I  .corecrel****null  kocl m  docu  insh l n : 2  docu r m  addresses.csv l n!" !1  pnam "4#  cwin #m$% $l %&' &O () (k$**+, +l$$,-. -r$'/0 /m$%1 1 0o 0lasttextlastText.23 2Y(456 4k87789 8l889:; :r8><= <48<>  azf4 >o:; 0i =o 0 thisperson thisPerson;?@ ?l??@AB AZ?^CDE Cl?HF FI?HG .coredoexboolobj Gn?DHI H1@D  azf7 Io?@ 0 thisperson thisPerson DrKTJK JnKPLM L1LP  azf7 MoKL 0 thisperson thisPerson Ko 0 m_firstname m_firstName ErW^NO NmWZP P Oo 0 m_firstname m_firstNameBQR Ql__RST SZ_~UVW Ul_hX XI_hY .coredoexboolobj Yn_dZ[ Z1`d  azf8 [o_` 0 thisperson thisPerson Vrkt\] \nkp^_ ^1lp  azf8 _okl 0 thisperson thisPerson ]o 0 m_lastname m_lastName Wrw~`a `mwzb b ao 0 m_lastname m_lastNameTcd cldef eZghi glj jIk .coredoexboolobj knlm l1  pnam mo 0 thisperson thisPerson hrno nnpq p1  pnam qo 0 thisperson thisPerson oo 0 m_displayname m_displayName irrs rmt t so 0 m_displayname m_displayNamefuv ulvwx wZyz{ yl| |I} .coredoexboolobj }n~ ~1  az43 o 0 thisperson thisPerson zr n 1  az43 o 0 thisperson thisPerson o 0 m_nickname m_nickName {r m  o 0 m_nickname m_nickNamex l r m  o 0m_email r m  o 0m_email2 l l & get the first 2 email addresses Z# l I .coredoexboolobj n m  az21 o 0 thisperson thisPerson Y k Z = o 0j m r n 1  az17 n 4  az21 o 0j o 0 thisperson thisPerson o 0m_email l Z = o 0j m r n 1  az17 n 4   az21 o  0j o 0 thisperson thisPerson o 0m_email2 0j m I .corecnte******** n 2  az21 o 0 thisperson thisPerson l$$ l$$  figure out all the phones r$+ m$'  o 0 m_workphone1 m_workPhone1 r,3 m,/  o 0 m_workphone2 m_workPhone2 r4; m47  o 0 m_workfax m_workFax r<C m<?  o 0 m_homephone1 m_homePhone1 rDK mDG  o~ ~0 m_homephone2 m_homePhone2 rLS mLO  o} }0 m_homefax m_homeFax rT[ mTW  o| |0 m_mobilephone m_mobilePhone r\c m\_  o{ {0 m_otherphone m_otherPhone rdk mdg  oz z 0m_pager lllyxyx rlu clq mlmw w boovfals mmpv v bool ou u*0foundfirstworkphonefoundFirstWorkPhone rv cv{ mvwt t boovfals mwzs s bool or r*0foundfirsthomephonefoundFirstHomePhone lqpqp Zon lm Il k l.coredoexboolobj  n   mj j az20  oi i0 thisperson thisPersonkm Y h g  k r n 4f f az20 oe e0j od d0 thisperson thisPerson oc c0 thisphone thisPhone r n 1b b az18 oa a0 thisphone thisPhone o` ` 0thisphonelabelthisPhoneLabel r n!" !1_ _ az17 "o^ ^0 thisphone thisPhone  o] ] 0thisphonevaluethisPhoneValue#$ #l\[\[$%& %Z'()* 'l+Z +F,- ,=./ .oY Y 0thisphonelabelthisPhoneLabel /m0 0 work -=12 1oX X*0foundfirstworkphonefoundFirstWorkPhone 2mW W boovfalsZ (k3345 4r67 6oV V 0thisphonevaluethisPhoneValue 7oU U0 m_workphone1 m_workPhone158T 8r9: 9mS S boovtrue :oR R*0foundfirstworkphonefoundFirstWorkPhoneT);< ;l=Q =F>? >=@A @oP P 0thisphonelabelthisPhoneLabel AmB B work ?=CD CoO O*0foundfirstworkphonefoundFirstWorkPhone DmN N boovtrueQ<EF ErGH GoM M 0thisphonevaluethisPhoneValue HoL L0 m_workphone2 m_workPhone2FIJ IlKK KFLM L=NO No J J 0thisphonelabelthisPhoneLabel Om  P P home M=QR QoI I*0foundfirsthomephonefoundFirstHomePhone RmH H boovfalsKJST Sk*UUVW Vr$XY Xo G G 0thisphonevaluethisPhoneValue YoF F0 m_homephone1 m_homePhone1WZE Zr%*[\ [m%&D D boovtrue \oC C*0foundfirsthomephonefoundFirstHomePhoneET]^ ]l-@_B _F-@`a `=-4bc bo-0A A 0thisphonelabelthisPhoneLabel cm03d d home a=7<ef eo7:@ @*0foundfirsthomephonefoundFirstHomePhone fm:;? ? boovtrueB^gh grCJij ioCF> > 0thisphonevaluethisPhoneValue jo= =0 m_homephone2 m_homePhone2hkl klMTm< m=MTno noMP; ; 0thisphonelabelthisPhoneLabel omPSp pwork fax<lqr qrW^st soWZ: : 0thisphonevaluethisPhoneValue to9 90 m_workfax m_workFaxruv ulahw8 w=ahxy xoad7 7 0thisphonelabelthisPhoneLabel ymdgz zhome fax8v{| {rkr}~ }okn6 6 0thisphonevaluethisPhoneValue ~o5 50 m_homefax m_homeFax| lu|4 =u| oux3 3 0thisphonelabelthisPhoneLabel mx{  mobile4 r o2 2 0thisphonevaluethisPhoneValue o1 10 m_mobilephone m_mobilePhone l0 = o/ / 0thisphonelabelthisPhoneLabel m  pager0. r o- - 0thisphonevaluethisPhoneValue o, , 0m_pager. *r o+ + 0thisphonevaluethisPhoneValue o* *0 m_otherphone m_otherPhone&) l('(') h0j  m&& I%$ %.corecnte******** n 2# # az20 o" "0 thisperson thisPerson$gon l! !  l  figure out the addresses r m  o 0 m_workstreet m_workStreet l r m  o 0 m_workstreet2 m_workStreet2  not used r m  o 0 m_workcity m_workCity r m  o 0 m_workstate m_workState r m  o 0 m_workzip m_workZip r m  o 0 m_workcountry m_workCountry r m  o 0 m_homestreet m_homeStreet l r m  o 0 m_homestreet2 m_homeStreet2  not used r m  o 0 m_homecity m_homeCity r m  o 0 m_homestate m_homeState r m  o 0 m_homezip m_homeZip r m   o 0 m_homecountry m_homeCountry l Z l I  .coredoexboolobj n m  az27 o 0 thisperson thisPerson  Y  k. l.. r.8 n.4 4/4  az27 o23 0j o./ 0 thisperson thisPerson o 0thisaddrthisAddr r9D n9@ 1<@  az18 o9< 0thisaddrthisAddr o 0 thisaddrlabel thisAddrLabel lEE ZE lEL =EL oEH 0 thisaddrlabel thisAddrLabel mHK  work kO rOZ nOV   1RV  az28  oOR 0thisaddrthisAddr  o 0 m_workstreet m_workStreet   r[f n[b 1^b  az29 o[^ 0thisaddrthisAddr o 0 m_workcity m_workCity  rgr ngn 1jn  az30 ogj 0thisaddrthisAddr o 0 m_workstate m_workState rs~ nsz 1vz  az31 osv 0thisaddrthisAddr o 0 m_workzip m_workZip r n!" !1  az32 "o 0thisaddrthisAddr  o 0 m_workcountry m_workCountry k##$% $r&' &n() (1  az28 )o 0thisaddrthisAddr 'o 0 m_homestreet m_homeStreet%*+ *r,- ,n./ .1  az29 /o 0thisaddrthisAddr -o 0 m_homecity m_homeCity+01 0r23 2n45 41  az30 5o 0thisaddrthisAddr 3o 0 m_homestate m_homeState167 6r89 8n:; :1  az31 ;o 0thisaddrthisAddr 9o 0 m_homezip m_homeZip7< <r=> =n?@ ?1  az32 @o 0thisaddrthisAddr >o 0 m_homecountry m_homeCountryA Al 0j m  I )B .corecnte******** Bn %CD C2!%  az27 Do ! 0 thisperson thisPersonEF ElFGH GZIJK IlL LIM .coredoexboolobj MnNO N1  az12 Oo 0 thisperson thisPerson JrPQ PnRS R1  az12 So 0 thisperson thisPerson Qo 0 m_jobtitle m_jobTitle KrTU TmV V Uo 0 m_jobtitle m_jobTitleHWX WlXYZ YZ[\] [l^ ^I_ .coredoexboolobj _n`a `1  az55 ao 0 thisperson thisPerson \r bc bnde d1  az55 eo 0 thisperson thisPerson co 0 m_department ]r fg fm h h go 0 m_departmentZij iljkl kZ3mno mlp pIq .coredoexboolobj qnrs r1  az38 so 0 thisperson thisPerson nr )tu tn %vw v1!%  az38 wo ! 0 thisperson thisPerson uo 0m_organization or,3xy xm,/z z yo 0m_organizationl{| {l44|}~ }Z4S l4= I4= .coredoexboolobj n49 159  az13 o45 0 thisperson thisPerson r@I n@E 1AE  az13 o@A 0 thisperson thisPerson o 0 m_homepage m_homePage rLS mLO  o 0 m_homepage m_homePage~ lTT lT[ rT[ mTW  o 0 m_homepage2 m_homePage2 +% AddressBook only supports 1 web page l\\ l\\ l\\ r\c m\_  o 0 m_birthyear m_birthYear rdk mdg  o 0 m_birthmonth m_birthMonth rls mlo  o 0 m_birthday m_birthDay Zt lt} It} .coredoexboolobj nty 1uy  az11 otu 0 thisperson thisPerson k r n 1  az11 o 0 thisperson thisPerson o 0bdaybDay l r n 1  year o 0bdaybDay o 0 m_birthyear m_birthYear r n m  mnth o 0bdaybDay o 0 m_birthmonth m_birthMonth r n 1  day o 0bdaybDay o 0 m_birthday m_birthDay l~~ Z} l| I{z {.coredoexboolobj n my y az22 ox x0 thisperson thisPersonz| r b m  (AIM)  n 1w w az17 n 4v v az22 muu ot t0 thisperson thisPerson os s0 m_aimname m_aimName} r m  or r0 m_aimname m_aimName lqpqp Zo ln Iml m.coredoexboolobj n mk k az26 oj j0 thisperson thisPersonln r b m  (ICQ)  n 1i i az17 n 4h h az26 mgg of f0 thisperson thisPerson oe e0 m_icqname m_icqNameo r m  od d0 m_icqname m_icqName lcbcb Z#a l ` I _^ _.coredoexboolobj n  1 ] ] az37 o\ \0 thisperson thisPerson^` r n   1[ [ az37  oZ Z0 thisperson thisPerson  oY Y 0m_notesa r#   m   oX X 0m_notes l$$WVWV l$$UU " add any left overs to notes Z$ETS l$+R >$+ o$'Q Q0 m_homephone2 m_homePhone2 m'* R l.A r.A b.= !  b.9"# "b.5$% $o.1P P 0m_notes %m14& &  #m58' 'home phone2 =  !o9FM/0 /oFIH H0 m_workphone2 m_workPhone2 0mIL1 1I -lPc23 2rPc45 4bP_67 6bP[89 8bPW:; :oPSG G 0m_notes ;mSV< <  9mWZ= =work phone2 =  7o[^F F0 m_workphone2 m_workPhone2 5oE E 0m_notes 3:4should be on separate line so line break is appendedKJ+>? >lhhDCDC?@A @ZhBCBA BlhoD@ D>hoEF Eohk? ?0 m_otherphone m_otherPhone FmknG G@ ClrHI HrrJK JbrLM Lbr}NO NbryPQ Poru> > 0m_notes QmuxR R  Omy|S Sother phone =  Mo}= =0 m_otherphone m_otherPhone Ko< < 0m_notes I:4should be on separate line so line break is appendedBAATU Tl;:;:UVW Vl9X9 Xdone with this personWYZ Yr[\ [b]^ ]b_` _bab abcd cbef ebgh gbij ibkl kbmn mbop obqr qb}st sbyuv ubuwx wbqyz ybm{| {bi}~ }be ba b] bY bU bQ bM bI bE bA b= b9 b5 b1 b- b) b% b! b b b b b  b  b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b m  o8 80 m_firstname m_firstName m , o7 70 m_lastname m_lastName m , o6 60 m_displayname m_displayName m , o5 50 m_nickname m_nickName m , o4 4 0m_email m , o3 3 0m_email2 m , o2 20 m_workphone1 m_workPhone1 m , o1 10 m_homephone1 m_homePhone1 m , o0 00 m_workfax m_workFax m , o/ / 0m_pager m , o. .0 m_mobilephone m_mobilePhone m , o- -0 m_homestreet m_homeStreet m , o, ,0 m_homestreet2 m_homeStreet2 m , o+ +0 m_homecity m_homeCity m , o* *0 m_homestate m_homeState m , o) )0 m_homezip m_homeZip m   , o ( (0 m_homecountry m_homeCountry m , o' '0 m_workstreet m_workStreet m , o & &0 m_workstreet2 m_workStreet2 m!$ , o%(% %0 m_workcity m_workCity m), , o-0$ $0 m_workstate m_workState m14 , o58# #0 m_workzip m_workZip m9< , o=@" "0 m_workcountry m_workCountry mAD , oEH! !0 m_jobtitle m_jobTitle mIL , oMP 0 m_department mQT , oUX 0m_organization mY\ , o]` 0 m_homepage m_homePage mad , ~oeh 0 m_homepage2 m_homePage2 |mil , zomp 0 m_birthyear m_birthYear xmqt , voux 0 m_birthmonth m_birthMonth tmy|  , ro} 0 m_birthday m_birthDay pm  , no 0 m_homephone2 m_homePhone2 lm  , jo 0 m_homefax m_homeFax hm  , fo 0 m_aimname m_aimName dm  , bo 0 m_icqname m_icqName `m , ^o  0m_notes \o *0m_dataforthispersonm_dataForThisPersonZ l l C=append current item in new TextEdit file called addresses.csv r n m  ctxt l n 4  docu m   mnull߀^ TextEdit.app@0L7p0`)(K ttxtalis6HDjCH+^ TextEdit.app[/ Applicationsk ^HD:Applications:TextEdit.app TextEdit.appHDApplications/TextEdit.app/ o 0lasttextlastText l!" !r#$ #b%& %b'( 'o 0lasttextlastText (m) )  &o *0m_dataforthispersonm_dataForThisPerson $o 0lasttextlastText ":4should be on separate line so line break is appended *+ *r,- ,c./ .o 0lasttextlastText /m  ctxt -l0 0n12 1m  ctxt 2n34 345  docu 5m 4m+6 6l 0i 5m+, 6I,37 .corecnte******** 72,/  azf4389 8l9:; :l< <done with all people;= =l )m !>>null^Address Book.app0L7ޠP`0)(K adrbalisFHDjCH+^Address Book.appP Applicationsk  ^ HD:Applications:Address Book.app"Address Book.appHDApplications/Address Book.app/'?@ ?l@AB AlC C This needs to be fixedBD DlE E?9 save document "addresses.csv" in "Desktop/addresses.csv" m F FlGHG .aevtoappnull****HIJK .aevtoappnull**** IkLL J 0i 0jK>1Pbt0BPdpzVhz&'1<=GRS     ) .miscactv********  kocl  docu  insh .corecrel****null  cwin  pnam 0lasttextlastText  azf4 .corecnte******** 0 thisperson thisPerson  azf7 .coredoexboolobj 0 m_firstname m_firstName  azf8 0 m_lastname m_lastName 0 m_displayname m_displayName  az43 0 m_nickname m_nickName 0m_email 0m_email2  az21  az17 0 m_workphone1 m_workPhone1 0 m_workphone2 m_workPhone2 0 m_workfax m_workFax 0 m_homephone1 m_homePhone1 0 m_homephone2 m_homePhone2 0 m_homefax m_homeFax 0 m_mobilephone m_mobilePhone 0 m_otherphone m_otherPhone 0m_pager  bool *0foundfirstworkphonefoundFirstWorkPhone *0foundfirsthomephonefoundFirstHomePhone  az20 0 thisphone thisPhone  az18 0thisphonelabelthisPhoneLabel 0thisphonevaluethisPhoneValue 0 m_workstreet m_workStreet 0 m_workstreet2 m_workStreet2 0 m_workcity m_workCity 0 m_workstate m_workState 0 m_workzip m_workZip 0 m_workcountry m_workCountry 0 m_homestreet m_homeStreet 0 m_homestreet2 m_homeStreet2 0 m_homecity m_homeCity 0 m_homestate m_homeState 0 m_homezip m_homeZip 0 m_homecountry m_homeCountry  az27 0thisaddrthisAddr 0 thisaddrlabel thisAddrLabel  az28  az29  az30  az31  az32  az12 0 m_jobtitle m_jobTitle  az55 0 m_department  az38 0m_organization  az13 0 m_homepage m_homePage 0 m_homepage2 m_homePage2 0 m_birthyear m_birthYear 0 m_birthmonth m_birthMonth 0 m_birthday m_birthDay  az11 0bdaybDay  year  mnth  day  az22 0 m_aimname m_aimName  az26 0 m_icqname m_icqName  az37 0m_notes *0m_dataforthispersonm_dataForThisPerson  ctxt*j O**-5 O*k/,FOEOk*-j kh*/EOa,j a,E`Y aE`Oa,j a,E`Y aE`O,j  ,E`Y aE`Oa,j a,E`Y aE`OaE`OaE`Oa ,j MGka -j khka /a!,E`YhOla /a!,E`Yh[OYYhOa"E`#Oa$E`%Oa&E`'Oa(E`)Oa*E`+Oa,E`-Oa.E`/Oa0E`1Oa2E`3Ofa4&E`5Ofa4&E`6Oa7,j $ka7-j kha7/E`8O_8a9,E`:O_8a!,E`;O_:a< _5fa4&_;E`#OeE`5Y_:a= _5ea4& _;E`%Y_:a> _6fa4&_;E`)OeE`6Yy_:a? _6ea4& _;E`+YY_:a@ _;E`'YE_:aA _;E`-Y1_:aB _;E`/Y_:aC _;E`3Y _;E`1OP[OYYhOaDE`EOaFE`GOaHE`IOaJE`KOaLE`MOaNE`OOaPE`QOaRE`SOaTE`UOaVE`WOaXE`YOaZE`[Oa\,j ka\-j kha\/E`]O_]a9,E`^O_^a_@_]a`,E`EO_]aa,E`IO_]ab,E`KO_]ac,E`MO_]ad,E`OY=_]a`,E`QO_]aa,E`UO_]ab,E`WO_]ac,E`YO_]ad,E`[OP[OY^YhOae,j ae,E`fY agE`fOah,j ah,E`iY ajE`iOak,j ak,E`lY amE`lOan,j an,E`oY apE`oOaqE`rOasE`tOauE`vOawE`xOay,j 2ay,E`zO_za{,E`tO_za|,E`vO_za},E`xYhOa~,j aa~k/a!,%E`Y aE`Oa,j aak/a!,%E`Y aE`Oa,j a,E`Y aE`O_+a_a%a%_+%E`YhO_%a_a%a%_%%E`YhO_1a_a%a%_1%E`YhOa_%a%_%a%_%a%_%a%_%a%_%a%_#%a%_)%a%_'%a%_3%a%_/%a%_Q%a%_S%a%_U%a%_W%a%_Y%a%_[%a%_E%a%_G%a%_I%a%_K%a%_M%a%_O%a%_f%a%_i%a%_l%a%_o%a%_r%a%_t%a%_v%a%_x%a%_+%a%_-%a%_%a%_%a%_%E`Ok/a-EOa%_%EOa&k/a-FOP[OY]OPUOPUascr ޭ