THE ANSWER - Eine neue Point-Generation Deutsche Dokumentation zu THE ANSWER-II Version 2.BETA vom 14.11.1991 Externer Abschnitt STATISTIK von Toni Günzel-Peltner WEGAR@AMC.ZER THE ANSWER ist Copyright 1990,1991 von Toni Günzel-Peltner INHALT: 0. Allgemeines 1. Dokumentation für Statistikfunktionen in The Answer 2. Dokumentation für Programierer Nicht im Inhalt: Statistik zum Netcall. Infos dazu finden sich in der Haupt-Dokumentation "Die Log-Files" 0. Allgemeines """""""""""""" The Answer ist in der Lage die allgmeine Nachrichtenverwaltung statistisch zu speichern. TheAnswer kann diese Statistik NICHT auswerten. Die Auswertung soll externen Programmen überlassen werden. Ich selbst habe bislang noch kein Auswertungsprogramm geschrieben. Unter "2. Dokumentation für Programierer" finden sich alle Daten, die man benötigt, um ein Programm zur Auswertung selbst zu schreiben. In der Konfiguration kann auf der NetCall-Seite die Statistik ein- oder ausgeschalten werden. Der Schalter ist der vierte der Log-File-Schalter. Die Statistik wird im festgelegten Pfad für die Log-Dateien gespeichert und hat den Namen "STATISTIK.DAT" Die Statistik speichert folgende Daten: A. Kopf und Fuss: ----------------- Jeder Statistikeintrag besitzt einen Header, der die Art des Eintrags angibt und das Datum dieses Eintrags enthält. Am Ende findet sich eine Ende-Markierung. Jeder Format-Eintrag beginnt mit "**" und endet mit einem ":" (zb: "**HEAD:") Das genaue Format und gütlige Eintragungen nach einem Feld sind im Abschnitt B. beschrieben. Typ : Header (Kopf) Format: TYPE : Eintragskennung DATE : Datum und Uhrzeit Tag|Monat|Jahr|Stunde|Minute|Sekunde (TTMMJJJJhhmmss) Typ : Ende (Fuss); Format: ENDE : Endemarkierung. Danach kann ein beliebiger Text stehen. Gültige Einträge kommen erst wieder mit einem neuen Header. B. FileHeader ------------- Dieser steht nur am Anfang des Statistikfiles und enthält nur Datum und Uhrzeit des Tages, an dem das Statistikfile erzeugt wurde. Typ : HEADER Format: Header Ende C. Bretter ---------- In der Statistik wird gespeichert, wenn ein Brett erzeugt, gelöscht oder verändert (nur Namensänderung) wird. Im Programm Converter gibt es zusätzlich die Funktion, die aktuelle Brettliste in die Statistik einzulesen. Der Anlaß wird unter CAUS gespeichert. Unter Name steht der aktuelle Name des Brettes. In DESC findet sich bei einer Namensänderung der Name des Brettes VOR der Umbenennung. Wenn die Brettliste per Converter in die Statistik eingelesen wurde, findet sich unter CAUS die Anzahl der Nachrichten oder die Werte NOTHING bei einem leeren Brett bzw. ERROR, wenn ein Fehler auftrat. Typ : BRETT Format: Header CAUS : Grund der Eintragung NAME : Name des Brettes DESC : ggf. Zusatzbeschreibung Ende D. Nachrichten -------------- In der Statistik wird gespeichert, wenn eine Nachricht einsortiert wurde oder wenn Nachricht abgesendet wurde. Beim Einsortieren erfolgt der Eintrag sofort, beim Absenden erst, wenn die Nachricht mit einem erfolgreichen Netcall versandt wurde. Unter CAUS wird festgelegt, ob die Nachricht gesendet oder empfangen wurde. EMPF hält dem Empfänger der nachricht (Brett/User), FROM den Absender der Nachricht, BETR den Betreff der Nachricht CREA das Absendedatum der Nachricht im Netcallformat fest. MSID enthält die Message-ID der Nachricht. Unter SIZE wird die Länge der Nachricht gespeichert. Typ : BRETT Format: Header CAUS : gesendet oder empfangen EMPF : Empfänger der Nachricht FROM : Absender der Nachricht BETR : Betreff der Nachricht CREA : Datum der Nachrichtenerzeugung MSID : MessageID der Nachricht SIZE : Länge der Nachricht Ende 2., Dokumentation für Programierer: """"""""""""""""""""""""""""""""""" Um das Statistikfile auswerten muss man folgendes beachten: 1. Das File ist 100% ASCII 2. Jeder neue Header beginnt mit "**" und endet mit ":" 3. Normalerweise ist ein Feld mit einem LineFeed angeschlossen. Es ist allerdings (theoretisch) möglich, daß der Eintrag selbst einen LineFeed besitzt. 3. Zwischen dem Typ ENDE und TYPE kann beliebiger Freitext stehen. Um den nächsten gültigen Eintrag zu finden muss man also nach "**ENDE:" das nächste "**TYPE:" suchen. 4. Nach einem Feld muss NICHT unbedingt ein Eintrag folgen. Es können auch leere Felder exestieren. Allerdings müssen zu jedem TYPE alle Schlüsselwörter vorkommen, die beschreiben sind, bevor ENDE kommt. Die Reihenfolge der Felder ist zwar fix, bei einer Auswertung sollte man aber auch gemischte Felder erkennen können. Nur Anfang und Ende sind 100%ig. 5. Die "" in diesem TExt markieren nur immer Anfang und Ende eines Wertes. In der Statistik sind sie natürlich nicht drin. Die Formate wurden oben bereits einleitend erklärt. Hier die genauen ASCII-Codes von Einträgen: "**TYPE:" TYPE kann folgende Daten erhalten: "HEADER" Der Header eines Statistikfiles "BRETT" Ein Eintrag für ein Brett "MSG" Ein Eintrag für eine Nachricht "**DATE:" DATE hat ein fixes Format: TTMMJJJJhhmmss TT Tag dezimal (1-31) MM Monat dezimal (1-12) JJJJ Jahr dezimal (0000-9999, zB 1991) "**CAUS:" CAUS liefert den Grund, warum dieser Statistikeintrag gemacht wurde. Die Typen BRETT und MSG haben ein CAUS-Feld. Bei BRETT sind folgende Einträge in CAUS möglich: "NEW" : Das Brett wurde neu erzeugt "DEL" : Das Brett wurde gelöscht "RENAME" : Der Brettname hat sich geändert "CONVERT" : List-Funktion im Programm Converter lieferte diesen Eintrag. Bei Msg sind folgende Einträge in CAUS möglich: "SEND" : Die Nachricht wurde gesendet "RECEIVE" : Die Nachricht wurde empfangen/einsortiert "**NAME:" NAME ist ein Feld von BRETT und enthält den Namen des betroffenen Brettes. "**DESC:" DESC ist ein Feld von BRETT. Es kann drei Einträge enthalten: Im Falle von NEW und DEL: "NOTHING" Im Falle von RENAME: Enthält es den alten Brettnamen vor der Umbenennung Im Falle von CONVERT: "NUM:"[Anzahl|"NOTHING"|"ERROR"] Nach Num folgt also entweder eine Zahl, die die Anzahl der Nachrichten in diesem Brett wiedergibt ODER NOTHING, wenn keine Nachrichten im Brett waren. Bei ERROR ging bei der Zahlenkonvertierung in eine String was daneben. "**EMPF:" EMPF ist ein Feld von MSG. - Empfänger der Nachricht "**FROM:" FROM ist ein Feld von MSG. - Absender der Nachricht "**BETR:" BETR ist ein Feld von MSG. - Betreff der Nachricht "**CREA:" CREA ist ein Feld von MSG. - Absendedatum der Nachricht "**MSID:" MSID ist ein Feld von MSG. - MsgID der Nachricht "**SIZE:" SIZE ist ein Feld von MSG. - Länge der Nachricht Alle diese Felder enthalten einen String, der eine Kopie des Nachrichtenkopfes dieser Nachricht ist. "**ENDE:" Nach ENDE ist jeder Eintrag zu Ende. Der nächste gültige Eintrag beginnt erst wieder mit einem **TYPE: Dazwischen kann ein beliebiger Freitext stehen. TheAnswer nutzt diese Möglichkeit bisher NUR bei HEADER, um einen Titelstring zu erzeugen. Ein Auswertungsprogramm sollte für zukünftige Erweiterungen kompatibel sein. Dazu gehört, daß neue Feldtypen dazukommen können, oder neue Werte in bekannten Feldtypen stehen. In keinem der beiden Fälle sollte ein Auswertungsprogramm eine Fehlermeldung bringen. Grantiert wird, daß alle hier aufgeführten Feldtypen bstehen bleiben. Es kann also durchaus eine Fehlermeldung ausgegeben werden, wenn ein kompletter TYP fehlt. Die Auswertungsmöglichkeiten ggf. auch kompiniert mit den Netcall-Log-Files sind sehr vielfältig. Man bekommt durch die Auswertung eine komplette Übersicht, wann wo wieviel Nachrichten gesendet/empfangen wurden. Ändert sich der Brettname, kann man über DESC dennoch verschiedene Bretter verknüpfen. Möglich ist alles. Von einfachen Programmen, die nur die Nachrichten zählen bis zu grafischen Meisterstücke, die die Brettauslastung, Tagespensum usw. usw. berechnen können. Für Verbesserungsvorschäge bin ich jederzeit zu haben. - Der Autor