home *** CD-ROM | disk | FTP | other *** search
/ High Voltage Shareware / high1.zip / high1 / DIR10 / SCANLOG.ZIP / SCANLOG.PAS < prev   
Pascal/Delphi Source File  |  1993-04-15  |  2KB  |  97 lines

  1.  
  2. (*
  3.  * scanlog - scan a DSZLOG file and return errorlevels to indicate
  4.  *
  5.  * samuel h. smith, 4-15-93
  6.  *
  7.  *)
  8.  
  9. procedure usage;
  10. begin
  11.    writeln('Usage:');
  12.    writeln('   scanlog LOGFILE -I');
  13.    writeln('     Sets ERRORLEVEL to the number of completed Incoming files');
  14.    writeln;
  15.    writeln('   scanlog LOGFILE -O');
  16.    writeln('     Sets ERRORLEVEL to the number of completed Outgoing files');
  17.    writeln;
  18.    writeln('   scanlog LOGFILE -R');
  19.    writeln('     Sets ERRORLEVEL to the number of aborted incoming files');
  20.    writeln;
  21.    writeln('   scanlog LOGFILE -T');
  22.    writeln('     Sets ERRORLEVEL to the number of aborted outgoing files');
  23.    halt(0);
  24. end;
  25.  
  26. var
  27.    mode:    char;
  28.    level:   integer;
  29.  
  30.    txok:    integer;
  31.    txerr:   integer;
  32.    rxok:    integer;
  33.    rxerr:   integer;
  34.  
  35.    fd:      text;
  36.    line:    string;
  37.  
  38. begin
  39.    if paramcount <> 2 then
  40.       usage;
  41.  
  42.    assign(fd,paramstr(1));
  43.    {$i-} reset(fd); {$i+}
  44.    if ioresult <> 0 then
  45.    begin
  46.       writeln('Error: cannot open logfile: ',paramstr(1));
  47.       writeln('ERRORLEVEL set to 255');
  48.       halt(255);
  49.    end;
  50.  
  51.    line := paramstr(2);
  52.    if line[1] = '-' then
  53.       delete(line,1,1);
  54.    mode := upcase(line[1]);
  55.  
  56.    case mode of
  57.       'T','R','I','O':  ;
  58.       else
  59.          writeln('Invalid option specified: -',mode);
  60.          usage;
  61.    end;
  62.  
  63.    while not eof(fd) do
  64.    begin
  65.       readln(fd,line);
  66.  
  67.       if length(line) > 60 then
  68.          case line[1] of
  69.             'L','E':
  70.                inc(rxerr);
  71.             'l','e':
  72.                inc(txerr);
  73.             'a'..'z':
  74.                inc(txok);
  75.             'A'..'Z':
  76.                inc(rxok);
  77.          end;
  78.    end;
  79.  
  80.    close(fd);
  81.  
  82.    writeln( rxok:3,' successful incoming files');
  83.    writeln( txok:3,' successful outgoing files');
  84.    writeln(rxerr:3,' aborted incoming files');
  85.    writeln(txerr:3,' aborted outgoing files');
  86.  
  87.    level := 0;
  88.    case mode of
  89.       'I':  level := rxok;
  90.       'O':  level := txok;
  91.    end;
  92.  
  93.    writeln('ERRORLEVEL set to ',level);
  94.    halt(level);
  95. end.
  96.  
  97.