[UPDATE] UnUsedHeaderCount_include

10/02/2009 - 10:54 von Hermann Hippen | Report spam
SUPERSEDE wg. Gewusel ;-)

Moin Moin :-),

Nach dem jemand meinte, Dialog sei abgestürzt, weil es beim Holen
einer grösseren Zahl von Artikeln, mit UUHC dann doch 'etwas' dauerte,
wurden am Script einige Optimierungen vorgenommen die Arbeits
Geschwindigkeit des Script's erhöhen (etwas Zeit braucht es immer noch)

Eine davon ist auch, dass das Sortieren Liste nur dann stattfindet, wenn
man im Kopf des Script's Sortieren:=True setzt.

Man kann das Script ja eine Weile laufen lassen, und wenn man die Liste
auswerten möchte, setzt man Sortieren=True - nach dem nàchsten Pullen
ist die Liste sortiert.

Anmerkung:

Es ist sicher nicht besonders sinnvoll, UUHC im Dauereinsatz zu
betreiben. Nachdem das Script z.B. eine Woche lange gelaufen ist, ist
die Liste aussagekràftig genug um die Header auszuwàhlen, die man
entfernen lassen möchte und diese dann in Removeheaders_include
eintràgt.

Nach einer Woche, wird sich an der Reihenfolge der Listeneintràge
nicht's oder nicht mehr viel àndern, ebenso werden keine oder sehr
wenige neue Header Namen hinzukommen.

Nach dem Abbonieren neuer Gruppen (UUHC vor dem ersten Pull einer neuen
Gruppe ausschalten!), kann man UUHC ja wieder zuschalten und eine Weile
mitlaufen lassen um zu sehen, was in den neuen Gruppen an 'kreativen'
Köpfen vorhanden ist.

Solange UUHC im Einsatz ist, sollte man, aus zeitlichen Gründen, auf den
Einsatz Removeheaders_include verzichten. Warum soll das Script auch
laufen, wenn UUHC erst eruiert, welche Header in Frage kommen könnten.

Aber hier nun das optimierte UUHC:

8<[ UnUsedHeaderCount_Include ]>8
// Stand 10.02.2009
Procedure UUHC_INI(Var Sortieren:Boolean;Var RFCHeader:TStringList; Var UUHCDATFILE:String);
Var DlgRootDir:String;
Begin
// True = Sortiert die Liste in der Datei
// False = Die Liste in der Datei wird nicht sortiert.
// empfohlene Einstellung, da nicht so zeitintensiv
// Will man die Liste mal sortiert ansehen, reicht es, wenn man dann
// Sortieren auf True setzt, nach dem nàchsten Pullen ist die Liste dann sortiert.
Sortieren := False;

//Hier die Header eingeben die NICHT gezàhlt werden sollen.
RFCHeader.CommaText: 'also-control:,alternate-recipient:,apparently-to:,approved:,article-names:,'
+ 'article-updates:,autoforwarded:,auto-forwarded:,bcc:,cc:,client:,comments:,'
+ 'content-base:,content-conversion:,content-description:,content-disposition:,'
+ 'content-id:,content-identifier:,content-language:,content-length:,'
+ 'content-location:,content-md5:,content-return:,content-sgml-entity:,'
+ 'content-transfer-encoding:,content-type:,control:,conversion:,conversion-with-loss:,'
+ 'date:,delivery:,delivery-date:,delivery-report:,discarded-x400-ipms-extensions:,'
+ 'discarded-x400-mts-extensions:,disclose-recipients:,disposition:,distribution:,'
+ 'dl-expansion-history:,dl-expansion-history-indication:,encoding:,errors-to:,expires:,'
+ 'expiry-date:,extension:,fax:,fcc:,followup-to:,for-comment:,for-handling:,forwarded:,'
+ 'from ,from:,generate-delivery-report:,history:,id:,identifier:,importance:,'
+ 'incomplete-copy:,information-types:,in-reply-to:,keywords:,language:,length:,lines:,'
+ 'mailer:,mail-system-version:,md5:,message-id:,message-type:,mime-version:,newsgroups:,'
+ 'newsreader:,obsoletes:,organisation:,organization:,original-encoded-information-types:,'
+ 'originating-client:,path:,phone:,precedence:,prevent-nondelivery-report:,priority:,'
+ 'received:,recipient:,references:,reply-by:,reply-to:,report:,resent-:,resent-bcc:,'
+ 'resent-cc:,resent-date:,resent-from:,resent-message-id:,resent-reply-to:,resent-return:,'
+ 'resent-to:,return-path:,return-receipt-to:,see-also:,sender:,sensitivity:,status:,'
+ 'subject:,summary:,supersedes:,telefax:,to:,transfer-encoding:,type:,version:,'
+ 'x400-content-return:,x400-content-return:,x-mailer:,x-newsreader:,xref:'

// Hier den Pfad zum Dialog-Programm Verzeichnis angeben:zur Datei UUHCDAT.TXT eingeben
DlgRootDir := 'E:\Programme\40tude Dialog\'

// ab hier nüscht mehr àndern
UUHCDATFILE := DlgRootDir + 'logs\UUHCDAT.TXT';
End;
Procedure UUHC(Var Message: TStringList);
Var RFCHeader,
UUHCDAT : TStringList;
UUHCDATFILE, tmp, hs : String;
i,j,s1,s2 : Integer;
Found, Sortieren : Boolean;
Begin
RFCHeader := TStringList.Create;
UUHCDAT := TStringList.Create;
UUHC_INI(Sortieren,RFCHeader,UUHCDATFILE);
Try
If FileExists(UUHCDATFILE) Then UUHCDAT.LoadFromFile(UUHCDATFILE);
i := 0;
Repeat
If Pos(': ',Message[I]) > 0 Then hs := Copy(Message[i],1,Pos(': ',Message[i]));
If Pos(Lowercase(hs),RFCHeader.Text) > 0 Then Found:=True Else Found:=False;
If (Found = False) Then If (Message[i][1] >' ') Then If (Message[i][1] > Chr(9)) Then
Begin
tmp := Copy( Message[i], 1, Pos(':', Message[i]));
If UUHCDAT.Values[tmp] > ''
Then UUHCDAT.Values[tmp] := IntToStr(StrToInt(UUHCDAT.Values[tmp]) + 1)
Else UUHCDAT.Add(tmp + '=1');
End;
I := I + 1;
Until Message[i] = '';
If Sortieren = True Then
Begin
For I:=0 to UUHCDAT.Count-1 Do
For J:=0 to i-1 Do
Begin
s1:=StrToInt(UUHCDAT.Values[UUHCDAT.Names[J]]);
s2:=StrToInt(UUHCDAT.Values[UUHCDAT.Names[J+1]]);
If s2 > s1 Then UUHCDAT.Exchange(j,j+1);
End;
End;
UUHCDAT.SaveToFile(UUHCDATFILE);
Except
RFCHeader.Free;
UUHCDAT.Free;
End;
End;
8<-->8

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

Lesen sie die antworten

#1 Joachim Reiter
10/02/2009 - 11:24 | Warnen spam
Hallo *Hippi*,

On 10.02.2009 10:54 Hermann Hippen wrote:

SUPERSEDE wg. Gewusel ;-)



*LOL* Da isser wieder... Hermann, ich /liebe/ Dich ;-)
Gruß... Joachim
www.hobbyecke-pc.de - My own hobby, especially incl. Usenet
For information about my System look header 'X-System:'
http://4ds.siteboard.eu/ - Die Script-Werkstatt und Turbo für 40tude-Dialog

Ähnliche fragen