home *** CD-ROM | disk | FTP | other *** search
- /****************************************/
- /* */
- /* BT-II_ADM V_2 28.08.1993 */
- /* */
- /* Starten von AddressMaster via BT-II */
- /* */
- /* Einlesen von Adressen via ADM. */
- /* */
- /* Ein ARexx-Programm von */
- /* Peter Humm, CH-9203 Niederwil */
- /* */
- /* In Anlehnung an ein Script von */
- /* Carsten Fulde. */
- /* */
- /****************************************/
-
- /* $VER: ADR-LOAD.bt2 (28.7.93)
-
- In BeckerText-II an gewünschter Stelle VORNAME NAME eintippen und
- Cursor auf dieser Zeile stehenlassen. Dieses Script erwartet den
- Eintrag auf der Zeile 9 !
-
- Es reicht auch bloss ein Eintrag. Er wird als NAME interpretiert.
- So werden auch Adressen gefunden, bei denen kein Vorname eingege-
- ben wurde, z.B. Firmen.
-
- Nun ADR-Laden.bt2 aufrufen. *ADM* wird gestartet, sofern er nicht
- schon läuft. Nach der Adressen-Suche wird er wieder ausgeschaltet,
- damit das Fenster auf der WB verschwindet. Vielleicht baut uns ja
- Jan noch den Befehl SLEEP in den ARexxPort ein (entspr. TAB).
-
- Das Arexx-Script akzeptiert WildCards wie Geiss* oder auch bloss
- Teile des Vor- und Zunamens. 'J Geiss' wird wie auch 'Jan issle'
- von *ADM* richtig als Jan Geissler interpretiert.
-
- Dreiteilige Namen wie Jan M. Mustermann werden ebenfalls erkannt.
- So führt 'J M Must' zum selben Ergebnis, es sei denn, es befinde
- sich vorher noch ein Jürg M. Muster in der Datei ;-))
-
- Es ist möglich, zwei Adressen unter gleichen Namen abzuspeichern.
- Wenn also Name und Vorname von zwei Einträgen identisch sind, zeigt
- BT-II die erste Adresse an und fragt, ob die erste oder die zweite
- eingetragen werden soll. Wird 'Nächste' gewählt, löscht BT-II den
- ersten Eintrag und ersetzt ihn durch den zweiten (eigentlich logisch).*/
-
-
- /* DAS SCRIPT */
-
-
- /* Nachsehen, ob AddressMaster schon */
- /* läuft. Wenn nicht, dann starten */
-
- if ~show("P",ADM.1) = 1 then do
-
- /* Einschalten des CLI */
-
- address command
-
- /* Starten von ADM wie von WB, also */
- /* mit den ToolTypes. */
- /* Das Programm WBRun sollte beiliegen */
- /* sonst findet Ihr es auf Fish_843. */
- /* Kopiert es in's C: */
-
- 'wbrun dh0:Office/ADM/AddressMaster'
-
- /* Auf langsameren Amigas muss hier */
- /* eine Wartezeit eingegeben werden, */
- /* damit *ADM* auch tatsächlich bereit */
- /* ist, wenn die Suche startet. */
-
- address command 'wait 5'
-
- end
-
- /* Scharfstellen von BT-II */
-
- address 'bt2'
- options results
-
- /* Aktuelle Zeile einlesen. */
- /* Geht m.W. erst ab BT-II V_1.13 */
-
- 'WYSIWYG' 0
- 'GET' 'line'
-
- /* Zeile zerlegen in Vorname und Name */
- /* Feststellen der Anzahl Worte. Es */
- /* wird nur das erste und letzte Wort */
- /* ausgewertet. */
-
- line = result
- zahl = words(line)
- eins = subword(line,1,1)
- zwei = subword(line,zahl)
-
- /* allf. Carriage-Returns abschneiden */
-
- ret = D2C(13)
- eins = compress(eins,ret)
- zwei = compress(zwei,ret)
-
- /* Falls kein Vorname eingegeben wird, */
- /* muss dieser Suchbegriff gelöscht */
- /* werden. */
-
- if zwei = eins then eins = ""
-
- /* WildCards anfügen. */
- /* Erleichtert die Suche z.B. bei */
- /* Doppelnamen */
-
- eins = "*"eins"*"
- zwei = "*"zwei"*"
-
- /* Datensatz nach dem Namen suchen. */
- /* Hier der erste. */
-
- fst = 1
- res = 0
-
- /* Suchparameter übergeben */
-
- ADM.FIRSTNAME = eins
- ADM.LASTNAME = zwei
-
- /* Endlos-Schleife / Such-Routine */
-
- do forever
-
- /* Jetzt ADM.1 aktivieren */
-
- address 'ADM.1'
-
- /* Suche ab 1. Adresse und Ablage in */
- /* der STEM.Variable RESAD */
-
- SEARCH fst ADM
- res = RESULT
-
- /* Abfrage Fehlermeldung. Wenn o.k. */
- /* dann Eintrag der Adresse in BT-II */
- /* Andernfalls Abbruch der Suche. */
-
- if res >-1 then
- do
-
- /* Erste passende Adresse einlesen. */
-
- GETADDRESS RESAD
-
- /* Nächsten Eintrag aktivieren und als */
- /* Stamm-Variable RESAD1 einlesen */
-
- ACTIVATENEXT
-
- GETADDRESS RESAD1
-
- /* Falls Name UND Vorname identisch */
- /* sind, erste gefundene Adresse ins */
- /* Dokument übertragen. */
-
- if (RESAD.FIRSTNAME = RESAD1.FIRSTNAME) + (RESAD.LASTNAME = RESAD1.LASTNAME) = 2 then do
-
- address 'bt2'
-
- call Einsetzen
-
- /* Abfrage, ob die erste oder zweite */
- /* Adresse gewünscht wird. */
-
- GET 'string Diese Nächste Hier_gibt_es_noch_eine_weitere_Adresse._ _____Welche_soll_ich_einsetzen ??_'
-
- /* Wird die zweite gewählt, muss die */
- /* bereits eingetragene erst gelöscht */
- /* werden. Sonst Script abbrechen. */
-
- if result = 'Nächste' then do
-
- GOTO 9
-
- /* Adressen-Block markieren und dann */
- /* ausschneiden. */
-
- '6MARK' down
- 'BCUT'
-
- /* Die nächste Adresse wird aus *ADM */
- /* geholt und wie gewohnt eingetragen. */
-
- address 'ADM.1'
-
- GETADDRESS RESAD
-
- address 'bt2'
-
- call Einsetzen
-
- call Fertig
-
- end
- else call Fertig
-
- /* Abbruch, wenn die erste Adresse */
- /* bestätigt wird. */
-
- end
- else do
-
- /* Wenn Adresse nur einmal vorhanden, */
- /* eintragen und Skript beenden. */
-
- call Einsetzen
-
- call Fertig
-
- end
-
- end
- else do
-
- /* Meldung, dass Adresse nicht ge- */
- /* funden und Abbruch der Suche. */
-
- address 'bt2'
-
- GET 'string OK OK >->->->__Adresse_nicht_gefunden_<-<-<-< __________Na dann eben nicht_!!'
-
- call Fertig
-
- end
-
- end
-
-
- /* Ausschalten von *ADM* und Rückkehr */
- /* zu BeckerText-II. */
-
- Fertig:
-
- Address 'ADM.1'
-
- QUIT
-
- exit
-
- return
-
-
- /* Diese Routine plaziert die Zeilen */
- /* der Adresse richtig im Dokument. */
-
- Einsetzen:
-
- address 'bt2'
-
- /* Aktuelle Zeile markieren und dann */
- /* ausschneiden. */
-
- 'MARK' 'line'
- 'BCUT'
-
- /* Adresse in Dokument eintragen */
-
- INSERT RESAD.SALUTATION
- INSERT "\r"
- if RESAD.FIRSTNAME ~= '' then do
- INSERT RESAD.FIRSTNAME
- INSERT "320820"x
- end
- INSERT RESAD.LASTNAME
- INSERT "\r"
- if RESAD.ADDRESS1 ~= '' then do
- INSERT RESAD.ADDRESS1
- INSERT "\r"
- end
- if RESAD.ADDRESS2 ~= '' then do
- INSERT RESAD.ADDRESS2
- INSERT "\r"
- end
- INSERT RESAD.POSTCODE
- INSERT "320820"x
- INSERT RESAD.CITY
- INSERT "\r"
- INSERT RESAD.COUNTRY
- INSERT "\r"
-
- /* Dokument unter der Adresse säubern */
- /* und geeignete Zeichen- und Absatz- */
- /* formate wählen. */
- /* Der Cursor befindet sich danach auf */
- /* Zeile 19, wo sich bei mir jeweils */
- /* die Betreff-Zeile befindet. */
-
- INSERT "\r\r\r\r\r\r\r\r"
- 'GOTO' 19
- '10MARK' down
- 'BCUT'
- 'FOS' 'z STANDARD1'
- 'FOS' 'a STANDARD1'
- 'BOTTOM'
-
- return
-
-