/******************************************************************************/
/* ZooLoge  © Candid Böschen 1993                                             */
/* =======                                                                    */
/*                                                                            */
/* Autor : Candid Böschen                                                     */
/* Z-Netz: C.BOESCHEN@INSIDER.ZER                                             */
/*                                                                            */
/*                                                                            */
/* $VER: ZooLoge 0.9  © Candid Böschen (29.11.1993)                           */
/*                                                                            */
/* -------------------------------------------------------------------------- */
/* ZooLoge ist ein ARexx-Script für CygnusEd. Es wertet das von ZPoint        */
/* erstellte Logbuch aus. Auf Statistik habe ich verzichtet, ZooLoge gibt     */
/* lediglich die angefallenen Einheiten und Gebühren aus. Billigtarif und     */
/* Wochenende werden berücksichtigt. Vier Werte (zu Beginn des                */
/* ARexx-Scripts) müssen an die jew. Gegebenheiten angepaßt werden.           */
/*                                                                            */
/*                                                                            */
/* Für die Richtigkeit der ausgegebenen Daten gebe ich selbstverständlich     */
/* keine Garantie. ZooLoge ist (bisher) quick and dirty. Zum Prüfen der       */
/* Richtigkeit der Angaben habe ich einige okay1-Befehle im ARexx-Script      */
/* vorgesehen. Die meisten sind auskommentiert und sollten bei Fehlern        */
/* zur Hilfe genommen werden. Zu Beginn der Fehlersuche empfehle ich, den     */
/* okay1-Befehl in der Funktion Tarif auszukommentieren.                      */
/*                                                                            */
/*                                                                            */
/* Falls Fehler auftreten sollten, bitte ich um Zusendung des rel. Logbuchs   */
/* und Beschreibung des Fehlers.                                              */
/*                                                                            */
/*                                                                            */
/* Bedienung: CygnusEd starten und das von ZPoint erstellte Logbuch laden.    */
/* Anschließend das ARexx-Script starten.                                     */
/*                                                                            */
/* -HISTORY------------------------------------------------------------------ */
/*                                                                            */
/* Datum: 29.11.1993, Version 0.9                                             */
/*                                                                            */
/* Erste veröffentlichte (noch Beta) Version.                                 */
/*                                                                            */
/******************************************************************************/


/* Die folgenden vier Werte müssen angepaßt werden!!! */

SekuBillig = 720 /* hier die Sekunden für eine Billigtarif-Einheit eintragen */
SekuNormal = 360 /* hier die Sekunden für eine Normaltarif-Einheit eintragen */
NormBegin = 8 /* Uhr */                           /* Beginn des Normaltarifs */
NormEnde = 18 /* Uhr */                             /* Ende des Normaltarifs */


options results

address 'rexx_ced'

cr = '0A'X                               /* Zeilenvorschub für die Requester */

Einheiten = 0
GesEinheiten = 0

'Beg of File'                            /* An den Anfang der Datei springen */
'Mark location 1'            /* Am Anfang suchen wir vom Beginn der Datei an */

do forever

     call SucheNetcall()
/*     okay2 "Abbrechen?"
     if (result = 1) then
          exit
     end
*/
end

exit


SucheNetcall:

'Jump to mark 1'                             /* Zur aktuellen Marke springen */
"Search for 'Verbindung nach ' 0 0 1 0"
ergebnis = result
if ~(ergebnis = 1) then do
        okay1 "Kein Netcall (mehr) gefunden!"||cr||cr||"Einheiten gesamt:"GesEinheiten||cr||"Kosten    gesamt: "GesEinheiten * 0.23||" DM"

        exit                                          /* ARexx-Script abbrechen */
end

status 55                                      /* Inhalt der aktuellen Zeile */
zeile = result
'End of line'
'Mark location 1'                 /* Stelle merken, da geht's nachher weiter */
NZeit = WORD(zeile, 5)                              /* Hole die Netcall-Zeit */
/*okay1 "NZeit: "NZeit*/

call ZaehlEinheiten()                        /* Kosten für Netcall bestimmen */

return /* SucheNetcall */


ZaehlEinheiten:                              /* Kosten für Netcall bestimmen */

minuten = left(NZeit, lastpos(':', NZeit)-1)
/*okay1 "Minuten = "minuten*/
sekunden = right(NZeit, 2)
/*okay1 "Sekunden = "sekunden*/
sekunden = sekunden + minuten * 60
/*okay1 "Sekunden = "sekunden*/

call Tarif()                                    /* Billig- oder Normaltarif? */

if (Tarif = billig) then
        Einheiten = sekunden / SekuBillig
else
        Einheiten = sekunden / SekuNormal

        PointPos = pos('.', Einheiten)
        if(PointPos ~= 0) then
                Einheiten = left(Einheiten, PointPos-1) + 1

        GesEinheiten = GesEinheiten + Einheiten

/*      okay1 "Tarif        = "Tarif||cr||"Sekunden     = 
           "Sekunden||cr||"Einheiten    = 
           "Einheiten||cr||"GesEinheiten = "GesEinheiten*/

return /* ZaehlEinheiten */


Tarif:

"Search for 'Netcall gestartet' 0 0 0 0"
ergebnis = result
if ~(ergebnis = 1) then do
    okay1 "Kann Netcall-Tag nicht finden!"
    exit                                           /* ARexx-Script abbrechen */
end

Tarif=""
status 55                                      /* Inhalt der aktuellen Zeile */
zeile = result
if ((index(zeile, 'Saturday') = 0) & (index(zeile, 'Sunday') = 0)) then do
        Time = WORD(zeile, 2)                              /* Zeit des Netcalls */
        Stunde = left(Time, pos(':', Time)-1)            /* Stunde des Netcalls */
        if ((Stunde >= NormBegin) & (Stunde < NormEnde)) then
                Tarif = normal
        else
                Tarif = billig
        end
else
        Tarif = billig                                            /* Wochenende */

/*okay1 "Tarif = " Tarif*/

return /* Tarif */
