home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #3 / amigamamagazinepolishissue1998.iso / bazy / adm / arexx / adm-arexxmakros.lha / ImExport / ASCII-Import.adm < prev    next >
Text File  |  1995-06-04  |  3KB  |  119 lines

  1.  
  2. /* $VER: ASCII-Import.adm 1.0 (29.3.95)
  3.  
  4.    von Jan Geißler.
  5.  
  6.    Importiert eine ASCII-Datei in ADM, die im Format
  7.      index;anrede;vorname;nachname;straße;plz ort;tel
  8.    vorliegen muß.
  9.  
  10.    Andernfalls muß in Zeile 75ff das Skript angepaßt
  11.    werden.
  12.  
  13.  
  14.    1.0  [jan]  29.3.95   - erstes Release
  15.  
  16. */
  17.  
  18. OPTIONS RESULTS
  19.  
  20.  
  21. /* --- RexxReqTools-Library öffnen */
  22.  
  23. reqname = "rexxreqtools.library"
  24. if ~show("L", reqname) then
  25.   if ~addlib(reqname, 0, -30, 0) then do
  26.      say reqname "not found!"
  27.      EXIT
  28.   end
  29.  
  30.  
  31. /* --- Datei per Filerequester öffnen */
  32.  
  33. filename = rtfilerequest("","","ASCII-Datei laden","Importieren!")
  34. if filename = "" then do
  35.   call rtezrequest("Keine Datei ausgewählt", "Abbruch")
  36.   EXIT
  37. end
  38.  
  39. IF ~OPEN(datei,filename,"R") THEN DO   /* Adreßdatei öffnen     */
  40.    SAY "Kann Adreßdatei nicht öffnen!"
  41.    EXIT
  42. END
  43.  
  44.  
  45. /* --- Nachfragen, ob Datei im gewünschten Format vorliegt */
  46.  
  47. line = READLN(datei) /* Definitionszeile überspringen */
  48.  
  49.   NL    = "0a"x
  50.   text  = "Dieses Makro setzt voraus, daß diese Datei im Format" NL ||,
  51.           "  index;anrede;vorname;nachname;straße;plz ort;tel" NL ||,
  52.           "vorliegt. Die erste Zeile der Datei lautet" NL ||,
  53.           " " line NL NL ||,
  54.           "Soll importiert werden?"
  55.   gads  = "Ja, importieren!|Nein, Makro anpassen|Abbruch"
  56.  
  57.   ans = rtezrequest(text,gads)
  58.  
  59.  
  60.   IF      ans = 0 THEN EXIT        /* --- Abbruch */
  61.  
  62.   ELSE IF ans = 2 THEN DO          /* --- Makro ändern  */
  63.  
  64.           skript = "ARexx/ASCII-Import.adm"
  65.           ADDRESS COMMAND "SYS:C/ED" skript
  66.           EXIT
  67.   END
  68.  
  69.                                    /* --- Sonst Importieren */
  70.  
  71. DO WHILE ~EOF(datei)
  72.   ADM.postcode = ""
  73.   IF line ~= "" THEN DO
  74.  
  75.      /* --- ASCII-Format
  76.  
  77.         Die folgende Zeile teilt die Zeile der Quelldatei in die
  78.         verschiedenen Komponenten. Hier wird vom oben angegebenen
  79.         Aufbau ausgegangen, wobei "plz ort" für ADM noch aufgeteilt
  80.         werden muß.
  81.  
  82.         Diese Zeile ist bei anderem Aufbau entsprechend anzupassen!
  83.  
  84.         (In ARexx können überlange Zeilen durch ein Komma am Zeilen-
  85.         ende in mehrere Zeilen aufgeteilt werden!)
  86.  
  87.      */
  88.  
  89.      PARSE VAR line ADM.id ";" ADM.salutation ";" ADM.firstname ";",
  90.                     ADM.lastname ";" ADM.address1 ";" ort ";",
  91.                     ADM.telephone
  92.  
  93.  
  94.      /* --- Postleitzahl und Ort trennen */
  95.  
  96.      IF LENGTH(ort)>0 THEN DO
  97.         x = POS(" ",ort)
  98.         IF x>1 THEN DO
  99.            ADM.postcode = LEFT(ort,x-1)
  100.            ort = DELSTR(ort,1,x)
  101.         END
  102.      END
  103.      ADM.city = ort
  104.  
  105.  
  106.      /* --- Adresse in ADM übernehmen */
  107.  
  108.      NEWADDRESS ADM
  109.  
  110.   END
  111.  
  112.   /* --- Nächste Zeile lesen */
  113.  
  114.   line = READLN(datei)
  115.  
  116. END
  117. ok = CLOSE(datei)
  118. call rtezrequest("Fertig.", "OK")
  119.