home *** CD-ROM | disk | FTP | other *** search
/ Enigma Amiga Life 113 / EnigmaAmiga113CD.iso / software / on-line / yam2.1 / contributions / rexx / michael_luense / vcardtoadr.yam < prev    next >
Encoding:
Text File  |  2000-04-25  |  3.2 KB  |  91 lines

  1. /*********************************************************/
  2. /* vcardtoadr.yam                           version 1.01 */
  3. /* (c)opyright        21-April-2000 <Roy_Bartsch@gmx.de> */
  4. /* last changes       24-April-2000 <Roy_Bartsch@gmx.de> */
  5. /*                                                       */
  6. /* creates an addressbookentry by doubleclicking on an   */
  7. /* attached `VCARD`                                      */
  8. /*                                                       */
  9. /* USAGE:                                                */
  10. /* Create a new MIME type `text/x-vcard` with `.vcf` as  */
  11. /* extension and `rx [your path]/vcardtoadr.yam` as      */
  12. /* executable. That`s it :-)                             */
  13. /*********************************************************/
  14.  
  15. options RESULTS
  16.  
  17. PARSE ARG vcard
  18.  
  19. vcard=SUBSTR(vcard,2,LENGTH(vcard)-2)
  20.  
  21. address 'YAM'
  22.  
  23. call open(tmp,vcard,'R')
  24. DO WHILE ~EOF(tmp)
  25.    zeile=readln(tmp)
  26.    trenn=POS(":",zeile)
  27.    IF LEFT(zeile,2)="N:" THEN NEWNAME=SUBSTR(zeile,3)
  28.    IF LEFT(zeile,3)="FN:" THEN NEWNAME=SUBSTR(zeile,4)
  29.    IF LEFT(zeile,3)="TEL" THEN NEWPHONE=SUBSTR(zeile,trenn+1)
  30.    IF UPPER(LEFT(zeile,3))="PGP" THEN NEWPGP=STRIP(SUBSTR(zeile,trenn+1))
  31.    IF LEFT(zeile,8)="ADR;HOME" THEN DO
  32.       firstpos=POS(";",zeile,trenn)
  33.       streetpos=POS(";",zeile,firstpos+1)+1
  34.       citypos=POS(";",zeile,streetpos)+1
  35.       blpos=POS(";",zeile,citypos)+1
  36.       plzpos=POS(";",zeile,blpos)+1
  37.       countrypos=POS(";",zeile,plzpos)+1
  38.       NEWSTREET=SUBSTR(zeile,streetpos,citypos-streetpos-1)
  39.       NEWCITY=SUBSTR(zeile,plzpos,countrypos-plzpos-1)"/"SUBSTR(zeile,citypos,blpos-citypos-1)
  40.       NEWCOUNTRY=SUBSTR(zeile,blpos,plzpos-blpos-1)"/"SUBSTR(zeile,countrypos)
  41.       END
  42.    IF LEFT(zeile,4)="BDAY" THEN DO
  43.       jahr=SUBSTR(zeile,6,4)
  44.       monat=SUBSTR(zeile,10,2)
  45.       tag=SUBSTR(zeile,12,2)
  46.       NEWBIRTHDATE=tag""monat""jahr
  47.       END
  48.    IF LEFT(zeile,5)="EMAIL" THEN DO
  49.       prefpos=POS(";",zeile,trenn)
  50.       IF prefpos>0 THEN DO
  51.          internetpos=POS(";",zeile,prefpos+1)+1
  52.          NEWEMAIL=SUBSTR(zeile,trenn+1,POS(";",zeile,trenn+1)-trenn-1)
  53.          NEWHOMEPAGE=SUBSTR(zeile,internetpos)
  54.          END
  55.       ELSE NEWEMAIL=SUBSTR(zeile,trenn+1)
  56.       END
  57. END
  58. call close(tmp)
  59. IF VERIFY(NEWNAME,";",'M') THEN DO
  60.    tname=TRANSLATE(NEWNAME," ",";")
  61.    initial=LEFT(WORD(tname,2),1)
  62.    lastname=WORD(tname,1)
  63.    END
  64. ELSE DO
  65.    initial=LEFT(NEWNAME,1)
  66.    lastname=WORD(NEWNAME,WORDS(NEWNAME))
  67.    END
  68. NEWALIAS=initial"_"lastname
  69. IF WORDS(NEWNAME)=1 THEN NEWALIAS=NEWNAME
  70. ADDRFIND STEM adr. NEWEMAIL
  71. found=ADR.ALIAS.COUNT
  72. falias=adr.alias.0
  73. nz=D2C(10)
  74. IF found~="ADR.ALIAS.COUNT" THEN DO
  75.    question="An entry "UPPER(NEWEMAIL)" does already exists as alias "UPPER(falias)". Should I overwrite it?"
  76.    answers="_Yes|_No"
  77.    REQUEST '"'question'"' '"'answers'"'
  78.    choice=RESULT
  79.    IF choice=1 THEN DO
  80.       ADDRGOTO falias
  81.       ADDREDIT NEWALIAS '"'NEWNAME'"' NEWEMAIL '"'NEWPGP'"' '"'NEWHOMEPAGE'"' '"'NEWSTREET'"' '"'NEWCITY'"' '"'NEWCOUNTRY'"' '"'NEWPHONE'"' "VCARD" NEWBIRTHDATE
  82.       EXIT
  83.       END
  84.    ELSE EXIT
  85.    END
  86.  
  87. ADDRNEW
  88. ADDREDIT NEWALIAS '"'NEWNAME'"' NEWEMAIL '"'NEWPGP'"' '"'NEWHOMEPAGE'"' '"'NEWSTREET'"' '"'NEWCITY'"' '"'NEWCOUNTRY'"' '"'NEWPHONE'"' "VCARD" NEWBIRTHDATE
  89.  
  90. EXIT
  91.