/* $VER: AddToAlias.zprx 2.0 (15.2.96) Copyright (c) Nils Görs Dies ist ein ARexx-Skript für Zodiac's Point mit dem die Netz- adresse der aktuellen Nachricht oder aller markierten Nachrichten automatisch in die Aliasliste gespeichert wird. Es wird überprüft, ob sich zum Realnamen evtl. die Netzadresse ge- ändert hat, z.B. bei einem Serverwechsel. Dann kann man die alte Netzadresse durch die neue, aktuelle, austauschen. Sie dürfen dieses Skript beliebig kopieren, solange es zusammen mit Zodiac's Point eingesetzt wird, aber verändern Sie es bitte nicht ohne Erlaubnis des Autors. Sie erreichen den Autor wie folgt: Nils Görs Tel. : +49 (0)202 78xxxx Kaiserstr. 97a EMail: N.Goers@Art-Line.de 42329 Wuppertal oder über das ZP-Support-Brett. Verwenden Sie bitte nach Möglichkeit elektronische Post! Hinweise zur Installation: Kopieren sie dieses Skript in das Rexx-Verzeichnis von ZP und fügen sie danach der Datei 'fkeys.zp' auf Wunsch den Eintrag "F1:SYS:Rexxc/RX ZPOINT:Rexx/AddToAlias.zprx %s" hinzu. Dieses Skript benötigt ab V2.0 die rexxtricks- und rexxreqtools.library. Ich übernehme keinerlei Garantien, falls Daten verschlonzt werden sollten. Das Skript erstellt deshalb, zur Sicherheit, eine Kopie der Aliasliste, mit Namen "alias.zp.bak". Entwicklung: ------------ V1.00 > V1.01: Es wird nun automatisch erkannt, ob die Adresse schon in Ihrer Liste vorhanden ist. V1.01 > V1.02: zwischen Groß-und Kleinschreibung wird nicht mehr unterschieden. V1.02 > V1.03: genaue Unterscheidung zwischen Realnamen und Netz- adresse. V1.03 > V2.0 Total überarbeitete Version. Neuerungen: Es kann nun eine neue Netzadresse an eine vorhandene angehangen werden. Eine alte Netzadresse kann durch die neue ersetzt werden. Mehrere Empfänger können nacheinander abgearbeitet werden. */ /******************************************************************* * Bitte unterhalb dieser Zeile nichts mehr verändern! * *******************************************************************/ NL = '0a'x /* Zeichen für Zeilenumbruch */ OPTIONS RESULTS /* ------ von welchem ZP Port wurde das Script aufgerufen ? ------ */ PARSE ARG zpPort IF zpPort == "" THEN zpPort = "ZPoint" ADDRESS VALUE zpPort /* öffne alle nötigen libraries - wenn nicht möglich Programmende */ IF ~SHOW('LIBRARIES','rexxtricks.library') THEN IF ~ADDLIB('rexxtricks.library',0,-30,0) THEN EXIT IF ~SHOW('LIBRARIES','rexxreqtools.library') THEN IF ~ADDLIB('rexxreqtools.library',0,-30,0) THEN EXIT WHICHLEVEL IF (RESULT ~== 'BOARD') THEN DO requestnotify "Bitte begeben Sie sich in ein Brett!" EXIT END HOMEPATH Filename=result||"/alias.zp" CALL RXTR_READFILE(Filename,Aliasliste) COUNT LISTED Anzahl_listed = result backupnote = 0 IF Anzahl_listed > 0 THEN DO JUMPTOMESSAGE 1 MESSAGEINFO LISTED IF result == 1 THEN CALL _main more = 1 DO WHILE more JUMPTOMESSAGE LISTED more = (RC) IF more = 1 THEN CALL _main END EXIT END _main: MESSAGEINFO AUTHOR Username=Result Bool=VERIFY(Username," ",MATCH) /* Aus wievielen Zeichen besteht die Netzadresse ?? */ IF Bool ~== 0 THEN DO BoolEnd=VERIFY(Username,")",MATCH) /* Wo endet der Realname ?? */ Bool=Bool-1 Netzadresse=LEFT(Username,bool) /* Netzadresse rauskopieren */ Boolend=Boolend-Bool-1 Realname=RIGHT(Username,boolend) /* Realnamen rauskopieren */ Realname=COMPRESS(Realname,"()") /* ( und ) werden aus String entfernt */ CALL AddToAlias RETURN END ELSE requeststring 'PROMPT "Bitte den _UserNamen eingeben"' Realname=result IF (Realname ~== '') THEN DO Netzadresse=Username CALL AddToAlias RETURN END ELSE RequestNotify 'Keinen Namen eingegeben!' RETURN AddToAlias: Netznummer = RXTR_LSEARCH('#?'||Netzadresse||'#?',Aliasliste,,,pattern) Realnummer = RXTR_LSEARCH('#?'||Realname||'#?',Aliasliste,,,pattern) SELECT WHEN BITAND(Netznummer,Realnummer) == -1 THEN CALL AddNewUser WHEN Netznummer ~= -1 THEN CALL NetzadresseExistiert WHEN Realnummer ~= -1 THEN CALL NeueNetzadresse OTHERWISE NOP END RETURN /* ein User wird ganz neu eingetragen! */ AddNewUser: requestresponse "Möchten Sie wirklich "Realname" in", NL"Ihre Aliasliste aufnehmen?" IF (RC) == 0 THEN RETURN i = Aliasliste.0 i = i+1 AliasListe.i = NL||"N:"||Realname i = i+1 AliasListe.i = "A:"||Netzadresse i = i+1 AliasListe.i = "-" AliasListe.0 = i IF backupnote = 0 THEN ADDRESS COMMAND "copy" Filename "TO" Filename||".bak" CALL RXTR_WRITEFILE(Filename,Aliasliste) backupnote = 1 RETURN NetzadresseExistiert: requestnotify Netzadresse||NL"befindet sich schon in Ihrer Aliasliste!" RETURN NeueNetzadresse: IF Netznummer ~= -1 THEN RETURN i = realnummer+1 CALL rtezrequest("Es gibt schon einen" '"'Realname'"' "in Ihrer Aliasliste.", NL"Die Netzadressen stimmen aber nicht überein, evtl. hat", NL||Realname "einen Serverwechsel durchgeführt.", NL NL"NEU:" Netzadresse, NL"ALT:" DELSTR(Aliasliste.i,1,2), NL NL"Was soll also mit der neuen Adresse passieren?",, "_Anhängen|für (alle) alte _einsetzen|_nix!","Hups!","rt_pubscrname="zpPort) SELECT WHEN result == 1 THEN CALL Anhaengen WHEN result == 2 THEN CALL AlteErsetzen OTHERWISE NOP END RETURN Anhaengen: Aliasliste.i = Aliasliste.i||","Netzadresse IF backupnote = 0 THEN ADDRESS COMMAND "copy" Filename "TO" Filename||".bak" CALL RXTR_WRITEFILE(Filename,Aliasliste) backupnote = 1 RETURN AlteErsetzen: Aliasliste.i = "A:"Netzadresse IF backupnote = 0 THEN ADDRESS COMMAND "copy" Filename "TO" Filename||".bak" CALL RXTR_WRITEFILE(Filename,Aliasliste) backupnote = 1 RETURN /*EOS*/