Annotation of capa/capa51/CapaTools/loganalysis.pl, revision 1.2

1.1       albertel    1: #!/usr/local/bin/perl
                      2: 
1.2     ! albertel    3: # log ananlysis for CAPA
        !             4: #  Copyright (C) 1992-2000 Michigan State University
        !             5: #
        !             6: #  The CAPA system is free software; you can redistribute it and/or
        !             7: #  modify it under the terms of the GNU Library General Public License as
        !             8: #  published by the Free Software Foundation; either version 2 of the
        !             9: #  License, or (at your option) any later version.
        !            10: #
        !            11: #  The CAPA system is distributed in the hope that it will be useful,
        !            12: #  but WITHOUT ANY WARRANTY; without even the implied warranty of
        !            13: #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
        !            14: #  Library General Public License for more details.
        !            15: #
        !            16: #  You should have received a copy of the GNU Library General Public
        !            17: #  License along with the CAPA system; see the file COPYING.  If not,
        !            18: #  write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
        !            19: #  Boston, MA 02111-1307, USA.
        !            20: #
        !            21: #  As a special exception, you have permission to link this program
        !            22: #  with the TtH/TtM library and distribute executables, as long as you
        !            23: #  follow the requirements of the GNU GPL in regard to all of the
        !            24: #  software in the executable aside from TtH/TtM.
        !            25: 
1.1       albertel   26:  require('getopts.pl');
                     27:  
                     28:  
                     29:  
                     30:  sub  S_Enterpath {
                     31:     local($set)=@_;
                     32:     local($notdone,$path);
                     33:     
                     34:     $notdone = 1;
                     35:     while ($notdone) {
                     36:       print "Please enter the CLASS absolute path:\n";
                     37:       $path = <>; chomp($path);
                     38:       if( $path =~ /\/$/ ) {
                     39:         $Rfullpath = "$path" . "records";
                     40:         $Lfullpath = "$path" . "records/log$set.db";
                     41:         $Wfullpath = "$path" . "records/weblog$set.db";
                     42:       } else {
                     43:         $Rfullpath = "$path" . "/records";
                     44:         $Lfullpath = "$path" . "/records/log$set.db";
                     45:         $Wfullpath = "$path" . "/records/weblog$set.db";
                     46:       }
                     47:       if( -d $path ) {
                     48:         if( -d $Rfullpath ) {
                     49:           if( -f $Lfullpath ) {
                     50:             $notdone = 0;
                     51:           } else {
                     52:             print "File [$Lfullpath] does not exist!\n";
                     53:           }
                     54:           if( -f $Wfullpath ) {
                     55:             $notdone = 0;
                     56:           } else {
                     57:             print "File [$Wfullpath] does not exist!\n";
                     58:           }
                     59:         } else {
                     60:           print "Directory [$Rfullpath] does not exist!\n";
                     61:         }
                     62:       } else {
                     63:         print "Directory [$path] does not exist!\n";
                     64:       }
                     65:     
                     66:     }
                     67:     return ($path);
                     68:   }
                     69:   
                     70:   sub S_ScanDB  {
                     71:     local($filename)=@_;
                     72:     local($line_cnt)=0;
                     73:     local($s_num,$dow,$mon,$sp,$day,$time,$yr,$ans_str);
                     74:     local(@ans_char);
                     75:     local($ii,$first);
                     76:     local($Yes_cnt,$No_cnt);
                     77:     
                     78:     open(IN, "<$filename") || die "Cannot open $filename file!";
                     79:     $Yes_cnt = 0; $No_cnt = 0;
                     80:     while (<IN>) {
                     81:       $line_cnt++;
                     82:       chomp();
                     83:       ($first,$ans_str) = split(/1997 /);
                     84:        # print "$ans_str\n";
                     85:       (@ans_char) = split(/ */,$ans_str);
                     86:        
                     87:        for($ii=0;$ii<=$#ans_char;$ii++) {
                     88:        
                     89:          $Yes_cnt++ if $ans_char[$ii] eq 'Y';
                     90:          
                     91:          $No_cnt++  if $ans_char[$ii] eq 'N';
                     92:        }
                     93:      }
                     94:      close(IN) || die "Cannot close $filename file!";
                     95:      print  "$filename contains $line_cnt lines.\n";
                     96:      print  "  Yes = $Yes_cnt, No = $No_cnt\n";
                     97:      return ($Yes_cnt,$No_cnt);
                     98:   }
                     99:   
                    100:   
                    101:   
                    102:   if(! &Getopts('s:') ) {
                    103:      print STDERR "$Usage\n";
                    104:      exit 2;
                    105:   }
                    106:   $opt_s = 1  if ! $opt_s;
                    107:   S_Enterpath($opt_s);
                    108:   
                    109:   ($Y_cntL,$N_cntL) = S_ScanDB("$Lfullpath");
                    110:   ($Y_cntW,$N_cntW) = S_ScanDB("$Wfullpath");
                    111:   $Yratio = 0.0; $Nratio = 0.0;
                    112:   $Yratio = $Y_cntW / $Y_cntL;
                    113:   $Nratio = $N_cntL / $N_cntW;
                    114:   
                    115:   printf " Y ratio = %5.2f, N ratio = %5.2f\n", $Yratio , $Nratio;
                    116:   
                    117:   
                    118:   
                    119:   
                    120:   

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>