home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD1.iso / Database / ADM144.lha / ADM / ARexx / TelListe.adm < prev    next >
Encoding:
Text File  |  1994-07-26  |  3.7 KB  |  122 lines

  1.  
  2. /* $VER: TelefonListe.rexx 1.3 (09 Dec 1993)
  3.  
  4.    Usage: rx tliste.rexx <Ausgabedatei>
  5.  
  6.    Script, um sich eine Telefonliste ausgeben zu lassen.
  7.    Gibt die Daten in die angegebene Datei, ansonsten in CON: aus.
  8.  
  9.    Benötigt die RexxReqTools.library.
  10.  
  11.    Written by Bernhard Zahler.
  12.    Revised by Jan Geißler.
  13.  
  14.    1.2  [BZ]  03-Oct-93  Erstes Release
  15.    1.3  [jan] 09-Dec-93  Minimale Änderungen zur Veröffentlichung
  16.                          im ADM-PaketMinor:
  17.                          - ADDRESS-Befehl entfernt (nun von bel.
  18.                            ADM / vom ADM-Menü aus wählbar).
  19.                          - Achtet nun nicht mehr auf FLAGS
  20.    */
  21.  
  22. call addlib("rexxreqtools.library",0,-30,0)
  23.  
  24. OPTIONS RESULTS                      /* Rückgabewerte zulassen   */
  25.  
  26.  
  27.                                      /* Wurde ein Argument ange-
  28.                                         geben?                   */
  29.  
  30. IF arg() ~= 1 THEN outfile="*"
  31.               ELSE PARSE ARG outfile;
  32.  
  33. /* ADDRESS ADM.1
  34.  
  35.    Dieser ADDRESS-Parameter kann weggelassen werden, wenn das
  36.    Script von ADM aus ausgefuehrt werden soll!
  37.  
  38. */
  39.  
  40.  
  41. ADDRINMEM                            /* Anzahl Adressen holen    */
  42. numadr = RESULT
  43.  
  44. IF numadr<1 THEN DO                  /* Fehler ausgeben, falls   */
  45.    SAY "Keine Adressen im Speicher"  /* Adreßspeicher leer       */
  46.    EXIT
  47. END
  48.  
  49. IF OUTFILE="*" THEN DO
  50.    outfile = rtgetstring(outfile,"Ausgabedatei bzw. Gerät","Telefonliste")
  51. END
  52.  
  53. IF ~OPEN(datei,outfile,"W") THEN EXIT   /* Ausgabedatei öffnen     */
  54.  
  55. ergebnis = rtezrequest("Jede zweite Zeile kursiv?","Ja|Nein","Telefonliste")
  56.  
  57.  
  58.                                       /* Titel schreiben         */
  59. ok = Writech(datei,"1b"x"[72t")       /* Seitenlänge auf n Zeilen stellen */
  60. ok = WriteLn(datei,"Telefonliste vom "DATE())
  61. ok = WriteLn(datei,"")
  62. ok = WriteLn(datei,"Name                                     Telefonnummer")
  63. ok = WriteLn(datei,"------------------------------------------------------")
  64.  
  65. ACTIVATEFIRST                        /* Ersten Eintr. aktivieren */
  66.  
  67.                                      /* Schleife: Bis zur letzten
  68.                                         Adresse abspeichern      */
  69. z=0                                  /* zähler initialisieren    */
  70.  
  71. DO FOR numAdr UNTIL RESULT=-1
  72.  
  73.    GETADDRESS ADM                    /* Adresse -> Stemvar ADM   */
  74.  
  75.    IF RESULT=0 THEN DO
  76.  
  77.       ADDRESS
  78.  
  79.                                      /* Ausgabe ... */
  80.                                        /* Nur mit gesetzten Telefon-Flag */
  81.  
  82.       /* if trunc(ADM.FLAGS/512)=1 THEN DO
  83.  
  84.          Dieser Befehl prüft, ob Flag 10 gesetzt ist. Hier
  85.          auskommentiert, damit Gesamt-Telefonliste gedruckt
  86.          wird.
  87.  
  88.          Falls der wieder benutzt werden soll, unten das zum
  89.          "DO" zugehörige "END" nicht vergessen!
  90.       */
  91.  
  92.          if ergebnis = 1 THEN DO
  93.             IF (z/2)=TRUNC(z/2) THEN
  94.                ok = WRITECH(datei,"1b"x"[3m")     /* Kursiv ein */
  95.             ELSE
  96.                ok = WRITECH(datei,"1b"x"[23m")    /* Kursiv aus */
  97.          END
  98.          z=z+1                                    /* Zähler erhöhen */
  99.          if z=60 then ok=writech(datei,"1b"x"[6q") /* Perforation mit n Zeilen
  100.                                                       überspringen */
  101.          NAME = ADM.LASTNAME
  102.          if WORDS(ADM.FIRSTNAME)>0 THEN NAME = NAME || ", " || ADM.FIRSTNAME
  103.          if WORDS(ADM.REMARK1)  >0 THEN NAME = NAME || " (" || ADM.REMARK1 || ")"
  104.          ok = WriteLn(datei,insert(NAME," ",0,40,'.')|| ADM.TELEPHONE)
  105.  
  106.       /* END */
  107.  
  108.       ADDRESS
  109.  
  110.     ACTIVATENEXT                   /* Akt. naechsten Eintrag */
  111.  
  112.    END
  113.  
  114. END
  115.  
  116. ADDRESS
  117.  
  118. ok = WriteLn(datei,"")
  119. ok = WriteLn(datei,"*** Ende der Telefonliste vom "DATE()" ***")
  120.  
  121. ok = CLOSE(datei)
  122.