/* $VER: ChangeSubject.zprx 1.1 (21.1.97) Copyright 1996-1997 (c) Nils Görs. Funktionsbeschreibung: Dieses Skript basiert auf einer Idee von Gerd Pickard und dient dazu, von einer oder mehreren Nachrichten den Betreff zu ändern. 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/ChangeSubject.zprx %s" hinzu. Alternativ können auch folgende Zeilen in die Datei usermenus.zp eingefügt werden: *Betreff ändern und löschen Sys:Rexxc/RX ZPoint:Rexx/ChangeSubject.zprx %s Ja Ja Nein Ja Nein *Betreff ändern und reorganisieren Sys:Rexxc/RX ZPoint:Rexx/ChangeSubject.zprx %s Ja Ja Nein Reorg Nein Wie sie sehen, können Sie das Skript mit unterschiedlichen Para- metern aufrufen. Wenn Sie keine Parameter angeben, werde die Standardeinstellungen verwendet. Bitte beachten Sie, daß Sie immer ALLE Parameter übergeben müssen. Die Reihenfolge müssen Sie dabei IMMER beachten (Reihenfolge siehe Standardeinstellung!) Ab der Version 1.1 ist die "von Görs" Methode eingebaut. Das bedeutet, das direkt der Nachrichtenpuffer verändert wird. Das dauert evtl. etwas länger, ist aber die schönere Lösung. Man darf aber nicht vergessen, das diese Variante auch ein höheres Risiko birgt! */ /* Soll der Betreffrequester genutzt werden? */ Betreff_aendern = "Ja" /* (JA/NEIN) */ /* Soll der Betreff der Nachricht im Requester übernommen werden? */ Betreff_halten = "Ja" /* (JA/NEIN) */ /* Betreffzeile ohne den Präfix "Re:" */ Betreff_ohne_Praefix = "Nein" /* (JA/NEIN) */ /* Soll die Originalnachricht gelöscht werden? */ Nachricht_loeschen = "Reorg" /* (JA/NEIN/REORG) */ /* Soll der Betreff nach der "von Görs" Methode geändert werden? */ UseMessageBase = "JA" /* (JA|NEIN) */ /* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * Bitte geben Sie hier ihre Präferenzen ein ! * *******************************************************************/ /******************************************************************* * Bitte unterhalb dieser Zeile nichts mehr verändern! * *******************************************************************/ Outfile = "t:ChangeSubject.txt" LF = '0d'x NL = '0a'x OPTIONS RESULTS /* ------ von welchem ZP Port wurde das Script aufgerufen ? ------ */ PARSE ARG zpPort TT1 TT2 TT3 TT4 TT5 . IF zpPort == "" THEN zpPort = "ZPoint" ADDRESS VALUE zpPort WHICHLEVEL IF Result ~= "BOARD" then DO REQUESTNOTIFY "Bitte begeben Sie sich in ein Brett!" EXIT END COUNT ALL IF result = 0 THEN DO requestnotify "Dieses Skript funktioniert nur, wenn auch", NL"Nachrichten vorhanden sind. Und in diesem", NL"Brett sind keine Nachrichten, oder? ;-)" EXIT END /* Auswerten der Parameter */ Betreff_aendern = UPPER(Betreff_aendern) Betreff_halten = UPPER(betreff_halten) Betreff_ohne_Praefix = UPPER(Betreff_ohne_Praefix) Nachricht_loeschen = UPPER(Nachricht_loeschen) UseMessageBase = UPPER(UseMessageBase) IF TT1 ~= "" THEN Betreff_aendern = UPPER(TT1) IF TT2 ~= "" THEN Betreff_halten = UPPER(TT2) IF TT3 ~= "" THEN Betreff_ohne_Praefix = UPPER(TT3) IF TT4 ~= "" THEN Nachricht_loeschen = UPPER(TT4) IF TT5 ~= "" THEN UseMessageBase = UPPER(TT5) i = 1 send = 0 BOARDINFO LABEL BoardLabel = Result COUNT LISTED counted_mails = result counted_mails2 = counted_mails IF counted_mails == 0 THEN CALL _OnlyOne JUMPTOMESSAGE 1 MESSAGEINFO POSITION MailPos = result MESSAGEINFO LISTED IF result == 1 THEN DO CALL _Main counted_mails = counted_mails-1 END DO j = 1 to counted_mails JUMPTOMESSAGE LISTED CALL _Main END IF useMessageBase == "NEIN" THEN CALL _DeleteInSpool EXIT _OnlyOne: CALL _Main IF useMessageBase == "NEIN" THEN CALL _DeleteInSpool EXIT _Main: /* MESSAGEINFO ID MessIDOld.i = result */ IF Betreff_ohne_Praefix == "JA" THEN MESSAGEINFO SUBJECT ELSE MESSAGEINFO FULLSUBJECT oldsubject = result subjectName.i = oldsubject IF Betreff_aendern == "JA" THEN DO IF Betreff_halten == "JA" THEN REQUESTSTRING 'PROMPT "Bitte neuen Betreff eingeben!"' 'DEFAULT' '"'oldsubject'"' ELSE REQUESTSTRING 'PROMPT "Bitte neuen Betreff eingeben!"' SubjectName.i = Result END IF useMessageBase = "JA" THEN DO MESSAGEINFO TYPE IF result = "BIN" THEN DO requestnotify "Dies ist eine Binärnachricht. Aus Sicherheitsgründen", NL"kann diese Nachricht nicht nach der 'von Görs' Methode", NL"bearbeitet werden." EXIT END 'GUILOCK text="ändere Betreff..."' MESSAGEINFO ID messageID = result BOARDINFO PATH Brettverzeichnis.bak = result Brettverzeichnis = Brettverzeichnis.bak||"/messages.zp" CALL OPEN(old,Brettverzeichnis,"Read") CALL OPEN(new,outfile,"Write") DO UNTIL EOF(old) instring = READLN(old) IF instring ~= "" THEN DO IF ABBREV(instring,"BET: "||oldsubject) THEN CALL WRITELN(new,"BET: "||subjectname.i||LF) END ELSE CALL WRITELN(new,instring) END END CALL CLOSE(old) CALL CLOSE(new) ADDRESS COMMAND "COPY FROM" Outfile "TO" Brettverzeichnis "QUIET" ADDRESS COMMAND "DELETE" Brettverzeichnis.bak||"/index.zp" "QUIET" ADDRESS COMMAND "DELETE" OutFile "QUIET" CLEANUP GUILOCK OFF END ELSE DO SAVEMESSAGEBODY OutFile IF SubjectName.i == "" THEN DO ADDRESS COMMAND "delete" Outfile "QUIET" MESSAGEINFO LISTED IF result == 1 THEN SELECTMESSAGE RETURN END COUNT ALL counted = RESULT WRITEMESSAGE OutFile, 'RECEIVER Sukanya&Nils', 'SUBJECT' '"'SubjectName.i'"', 'SAVE' send = 1 IF Nachricht_loeschen == "JA" THEN DELETE ONE IF Nachricht_loeschen == "REORG" THEN DELETE LATER SELECTMESSAGE /* Markierung löschen */ JUMPTOMESSAGE counted+1 MESSAGEINFO ID MessIDnew.i = RESULT i = i +1 JUMPTOMESSAGE MailPos END RETURN _DeleteInSpool: If send == 0 then EXIT BOARDMENU JUMPTOBOARD 1 ENTERBOARD IF counted_mails2 == 0 THEN DO JUMPTOMESSAGE 'ID' MessIDnew.1 IF (RC) == 1 THEN DELETE ONE END DO i = 1 to counted_mails2 JUMPTOMESSAGE 'ID' MessIDnew.i IF (RC) == 1 THEN DELETE ONE END BOARDMENU JUMPTOBOARD 'NAME' BoardLabel ENTERBOARD /*EOS*/