home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD1.iso / Database / ADM144.lha / ADM / ARexx / Netzstatistik.adm < prev    next >
Encoding:
Text File  |  1994-07-26  |  3.0 KB  |  107 lines

  1.  
  2. /* $VER: Netzstatistik.adm 1.0 (6.1.93)
  3.  
  4.    Gibt den Anteil der User aus, die in der aktuellen ADM-Datei in
  5.    den jeweiligen Netzen sind.
  6.  
  7.    Hat zwar keinen praktischen Nutzen, zeigt jedoch, wie ADM-Daten
  8.    ausgewertet und zu Statistiken verwendet werden könnten.
  9.  
  10.    Fehler:
  11.      Überschneidungen (z.B. User in mehreren Netzen oder mehrere
  12.      Adressen in einem Netz) werden nicht separat ausgewertet.
  13.  
  14.    Von Jan Geißler.
  15.  
  16.    */
  17.  
  18. /*----------------------------------------------------------------------
  19.    Hauptprogramm: Adresse auslesen, Mail schreiben & schicken
  20. ----------------------------------------------------------------------*/
  21.  
  22.    OPTIONS RESULTS
  23.  
  24. /* Variablen initialisieren */
  25.  
  26.    numfido = 0
  27.    numuucp = 0
  28.    numzer = 0
  29.  
  30. /* Ersten Eintrag aktivieren, Anzahl Einträge herausfinden */
  31.  
  32.    ACTIVATEFIRST
  33.    ADDRINMEM
  34.    num = RESULT
  35.  
  36. /* Schleife: Falls EMail-Adresse
  37.  
  38.    DO FOR num
  39.       GETADDRESS ADM                 /* Adresse holen */
  40.       IF ADM.EMAIL1 ~= "" THEN DO
  41.          txt = ADM.EMAIL1            /* EMail 1 auswerten, falls vorhanden */
  42.          CALL NetType
  43.       END
  44.       IF ADM.EMAIL2 ~= "" THEN DO
  45.          txt = ADM.EMAIL2            /* EMail 2 auswerten, falls vorhanden */
  46.          CALL NetType
  47.       END
  48.       ACTIVATENEXT                   /* Nächsten aktivieren */
  49.    END
  50.  
  51. /* Ergebnis ausgeben */
  52.  
  53.    SAY "Gesamtzahl:" num
  54.    SAY "Fidonet:   " numfido "(" || numfido / num * 100 || "%)"
  55.    SAY "Z-Netz:    " numzer  "(" || numzer  / num * 100 || "%)"
  56.    SAY "Usenet:    " numuucp "(" || numuucp / num * 100 || "%)"
  57.  
  58.    EXIT                                         /* Ende */
  59.  
  60.  
  61. /*----------------------------------------------------------------------
  62.    UNTERPROGRAMM: Netz herausfinden.
  63. ----------------------------------------------------------------------*/
  64.  
  65.    NetType:
  66.  
  67.       IF txt ~= "" THEN DO      /* Wenn überhaupt EMail-Text vorhanden */
  68.  
  69.          pos = POS("=",txt)     /* Wenn mit ZER=, FIDO= oder UUCP= ein- */
  70.                                 /*                          getragen... */
  71.  
  72.          IF pos > 0 THEN DO     /* ... Netz herausfinden und von Adresse */
  73.             net = STRIP(SUBSTR(txt,1,pos-1))                  /* trennen */
  74.          END
  75.          ELSE DO                /* andernfalls: Herausfinden, welches Netz */
  76.  
  77.             net = "UUCP"        /* Vorgegeben: UUCP, falls kein anderes
  78.                                    erkannt wird... */
  79.  
  80.             pos = POS("@Fidonet",txt)     /* Endung "@Fidonet"? */
  81.             IF pos>0 THEN DO
  82.                net = "FIDO"
  83.             END
  84.  
  85.             pos = POS(".ZER",txt)         /* Endung ".ZER"? */
  86.             IF pos=LENGTH(txt)-3 THEN DO
  87.                net = "ZER"
  88.             END
  89.          END
  90.  
  91.          IF net="FIDO" THEN DO            /* FIDO:  */
  92.             numfido = numfido + 1
  93.          END
  94.  
  95.          IF net="ZER"  THEN DO            /* ZERBERUS: */
  96.             numzer = numzer + 1
  97.          END
  98.  
  99.          IF net="UUCP" THEN DO            /* UUCP: */
  100.             numuucp = numuucp + 1
  101.          END
  102.  
  103.       END
  104.    RETURN
  105.  
  106.    /* ENDE des Unterprogramms */
  107.