[NEU] @Karl Heinz - Hold_include

12/11/2008 - 22:06 von Hermann Hippen | Report spam
Moin Moin :-),

Auf vielfachen Wunsch eines einzelnen Herrn wurde heute ein Script geboren
: -)

Wird ein Artikel supergesedet/ersetzt, löscht Dialog den Orginalartikel.
Leider gibt es keine Möglichkeit das, wenn gewünscht, zu unterbinden.

In diesem Script kann man im Kopf diejenigen Gruppen eintragen, in denen
man die Originalartikel auch behalten möchte.

Jede Gruppe ist durch eine seperate Add('Gruppenname'); Zeile einzutragen.

de.comm.software.40tude-dialog - Nur in dieser Gruppe
de.comm.software - in allen Gruppen die de.comm.software
enthalten.
de.comm - in allen Gruppen die de.comm beinhalten

etc. etc :-)

Wirkungsweise: Beim Empfang eines Artikels wird geprüft ob der Supersedes
Header vorhanden ist. Falls ja, wird geprüft ob es in der
Gruppe unerwünscht ist das der Original Artikel gelöscht
wird. Ist die Gruppe in der Liste, im INI Teil, eingetragen,
wird der Supersedes Header vor dem abspeichern entfernt, der
Originalartikel bleibt so erhalten.

Im Scriptarchiv unter 'Eigene Scripte' auf 'Datei->Neues Script' klicken.
Den Namen 'Hold_Include' eingeben. Im rechten Fenster den unten angehàngten
Code, unter Überschreibung des darin befindlichen Miniscripts, einfügen und
speichern.

Eingebunden wird das Script in OnBeforeSaving, was dann so àhnlich
aussieht:

| program OnBeforeSavingMessage;
| uses textfile, Forms, StdCtrls;
| $I Hold_include}

| Procedure OnBeforeSavingMessage( Var Message : TStringlist;
| Const Servername : String;
| Const IsEmail : Boolean );
| Begin
| OriginalBeiSupersedeNichtLoeschen( Message);
| End;
| Begin
| End.

nach dem àndern speichern, kompilieren und neu starten.


8<--[ Hold_include.ds ]->8
Procedure INIGroups(Var ini:TStringlist);
Begin
With ini do
Begin
// Hier die Gruppen eintragen in denen der Supersedes
// Header gelöscht werden soll.
// Für jede Gruppe eine seperate Zeile in der Form:
// Add('Gruppenname'); eintragen.
Add('de.comm.software.40tude-dialog');
End;
End;
Procedure OriginalBeiSupersedeNichtLoeschen(Var Message: TStringList);
Var
I,J : Integer;
GR : TStringList;
Found : Boolean;
Begin
GR := TStringList.Create;
IniGroups(GR);
Found:=False;
With Message Do
Begin
For I := 0 to Count-1 Do
Begin
If Pos('Newsgroups',Strings[I]) > 0 Then
Begin
For J:= 0 To GR.Count-1 Do
Begin
If Pos(GR.Strings[J],Strings[I]) > 0 Then
Begin
Found := True;
Break;
End;
End;
Break;
End;
End;
If Found = True Then
For I:= 0 to Count-1 Do
Begin
If Pos('Supersedes', Strings[i]) > 0 Then
Begin
Delete(i);
Break;
End;
End;
End;
GR.Free;
End;
8<->8

Cu,
Hermann Hippen.
ž' š°º€ø?žžžžž?ø€º°š 'ž
ø€º° '<http://4ds.siteboard.eu>' °º€ø
'ž '40tude-Dialog Scriptwerkstatt' ž'
ø€º°' ž ž ø€º°ššššššš°º€øšž ž '°º€ø
 

Lesen sie die antworten

#1 Karl-Heinz Rademacher
13/11/2008 - 11:10 | Warnen spam
Hallo Hermann,

*Hermann Hippen* schrieb:
Auf vielfachen Wunsch eines einzelnen Herrn wurde heute ein Script geboren
: -)



Na da freut sich aber der /"einzelne Herr"/ ganz gewaltig! :))

Wird ein Artikel supergesedet/ersetzt, löscht Dialog den Orginalartikel.
Leider gibt es keine Möglichkeit das, wenn gewünscht, zu unterbinden.



Ich habe mir mal den "Luxus" gegönnt etwas abzuwarten hinsichtlich noch
möglicher Änderungen oder Anpassungen im Skript. Das scheint mir nicht
der Fall zu sein.

Nachgefragt: Kann das Skript /so/ wie es da ist auf die Seite?

Gruß
Karl-Heinz

,--[ Die 40tude Dialog - Seiten! ]
Š http://kh-rademacher.de/4d
Š http://kh-rademacher.de/face
`-

Ähnliche fragen