home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #3 / amigamamagazinepolishissue1998.iso / bazy / adm / arexx / adm-arexxmakros.lha / ImExport / AdressControl-Import.adm next >
Text File  |  1995-12-26  |  5KB  |  149 lines

  1. /* $VER: AdressControl-Import.adm 1.0 (4.7.95)
  2.  
  3.    von Jan Geißler.
  4.  
  5.    Importiert die Daten des Programms "AddressControl"
  6.    von Wolf Software. Die Daten müssen im mit "Export SDF"
  7.    von AddressControl aus exportiert werden.
  8. */
  9.  
  10. OPTIONS RESULTS
  11.  
  12.  
  13. /* --- RexxReqTools-Library öffnen */
  14.  
  15. reqname = "rexxreqtools.library"
  16. if ~show("L", reqname) then
  17.   if ~addlib(reqname, 0, -30, 0) then do
  18.      say reqname "not found!"
  19.      EXIT
  20.   end
  21.  
  22.  
  23. /* --- Datei per Filerequester öffnen */
  24.  
  25. filename = rtfilerequest("","","AddressControl-Datei laden","Importieren!")
  26. if filename = "" then do
  27.   call rtezrequest("Keine Datei ausgewählt", "Abbruch")
  28.   EXIT
  29. end
  30.  
  31. IF ~OPEN(datei,filename,"R") THEN DO   /* Adreßdatei öffnen     */
  32.    SAY "Kann Adreßdatei nicht öffnen!"
  33.    EXIT
  34. END
  35.  
  36.  
  37. /* --- Nachfragen, ob Datei im gewünschten Format vorliegt */
  38.  
  39. line = READLN(datei) /* Definitionszeile überspringen */
  40.  
  41.   NL    = "0a"x
  42.   text  = "Dieses Makro setzt voraus, daß die Daten im SDF-Format" NL ||,
  43.           "des Programms AddressControl von Wolf Software vorliegen." NL ||,
  44.           "Soll wirklich importiert werden?"
  45.   gads  = "Ja, importieren!|Abbruch"
  46.  
  47.   ans = rtezrequest(text,gads)
  48.  
  49.  
  50.   IF      ans = 0 THEN EXIT        /* --- Abbruch? */
  51.  
  52.  
  53. DO WHILE ~EOF(datei)
  54.   ADM.postcode = ""
  55.   IF line ~= "" THEN DO
  56.  
  57.      /* --- ASCII-Format
  58.  
  59.         Die folgende Zeile teilt die Zeile der Quelldatei in die
  60.         verschiedenen Komponenten. Hier wird vom oben angegebenen
  61.         Aufbau ausgegangen, wobei "plz ort" für ADM noch aufgeteilt
  62.         werden muß.
  63.  
  64.         Diese Zeile ist bei anderem Aufbau entsprechend anzupassen!
  65.  
  66.         (In ARexx können überlange Zeilen durch ein Komma am Zeilen-
  67.         ende in mehrere Zeilen aufgeteilt werden!)
  68.  
  69.      */
  70.  
  71.  
  72.      PARSE VAR line '"' ADM.lastname '","' ADM.firstname '","' ADM.birthday '","',
  73.                         ADM.address1 '","' ADM.city      '","' ADM.postcode '","',
  74.                         ADM.country  '","' ADM.telephone '","' ADM.remark1  '","',
  75.                         address2     '","' city2         '","' postcode2    '","',
  76.                         country2     '","' telephone2    '","' remark2      '","',
  77.                         address3     '","' city3         '","' postcode3    '","',
  78.                         country3     '","' telephone3    '","' remark3      '","',
  79.                         ADM.email1   '","' ADM.email2    '","' email3       '","',
  80.                         remark4      '"'
  81.  
  82.      IF ADM.birthday = "01-Jan-1978" THEN ADM.birthday = ""
  83.      IF LENGTH(ADM.birthday) = 11 THEN DO
  84.         PARSE VAR ADM.birthday tag "-" monat "-" jahr
  85.         IF monat = "Jan" THEN monat = "01"
  86.         IF monat = "Feb" THEN monat = "02"
  87.         IF monat = "Mär" THEN monat = "03"
  88.         IF monat = "Apr" THEN monat = "04"
  89.         IF monat = "Mai" THEN monat = "05"
  90.         IF monat = "Jun" THEN monat = "06"
  91.         IF monat = "Jul" THEN monat = "07"
  92.         IF monat = "Aug" THEN monat = "08"
  93.         IF monat = "Sep" THEN monat = "09"
  94.         IF monat = "Okt" THEN monat = "10"
  95.         IF monat = "Nov" THEN monat = "11"
  96.         IF monat = "Dez" THEN monat = "12"
  97.         ADM.birthday = tag || "." || monat || "." || jahr
  98.      END
  99.  
  100.      IF LENGTH(remark4) > 0 THEN ADM.remark1 = ADM.remark1 || NL || remark4
  101.      IF LENGTH(email3)  > 0 THEN ADM.remark1 = ADM.remark1 || NL || "EMail3:" email3
  102.      NEWADDRESS ADM
  103.  
  104.      IF (LENGTH(city2) > 0) THEN DO
  105.         STEM2.firstname = ADM.firstname
  106.         STEM2.lastname  = ADM.lastname
  107.         STEM2.birthday  = ADM.birthday
  108.         STEM2.email1    = ADM.email1
  109.         STEM2.email2    = ADM.email2
  110.         STEM2.remark1   = ADM.remark1
  111.         STEM2.address1   = address2
  112.         STEM2.city       = city2
  113.         STEM2.postcode   = postcode2
  114.         STEM2.country    = country2
  115.         STEM2.telephone  = telephone2
  116.         STEM2.remark1    = remark2
  117.         IF LENGTH(remark4) > 0 THEN STEM2.remark1 = STEM2.remark1 || NL || remark4
  118.         IF LENGTH(email3)  > 0 THEN STEM2.remark1 = STEM2.remark1 || NL || "EMail3:" email3
  119.         NEWADDRESS STEM2
  120.      END
  121.  
  122.      IF (LENGTH(city3) > 0) THEN DO
  123.         ADM3.firstname = ADM.firstname
  124.         ADM3.lastname  = ADM.lastname
  125.         ADM3.birthday  = ADM.birthday
  126.         ADM3.email1    = ADM.email1
  127.         ADM3.email2    = ADM.email2
  128.         ADM3.remark1   = ADM.remark1
  129.         ADM3.address1   = address3
  130.         ADM3.city       = city3
  131.         ADM3.postcode   = postcode3
  132.         ADM3.country    = country3
  133.         ADM3.telephone  = telephone3
  134.         ADM3.remark1    = remark3
  135.         IF LENGTH(remark4) > 0 THEN ADM3.remark1 = ADM3.remark1 || NL || remark4
  136.         IF LENGTH(email3)  > 0 THEN ADM3.remark1 = ADM3.remark1 || NL || "EMail3:" email3
  137.         NEWADDRESS ADM3
  138.      END
  139.  
  140.   END
  141.  
  142.   /* --- Nächste Zeile lesen */
  143.  
  144.   line = READLN(datei)
  145.  
  146. END
  147. ok = CLOSE(datei)
  148. call rtezrequest("Fertig.", "OK")
  149.