home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / bbs / logproc / logproc.pas < prev   
Encoding:
Pascal/Delphi Source File  |  1989-02-09  |  18.7 KB  |  451 lines

  1. {Logproc By Joe Kasser G3ZCZ (c) 1989. Not quite public domain yet}
  2. {$D+}
  3. {$I+}
  4. {$R+}                         {Range checking on off}
  5. {$B+}                         {Boolean complete evaluation on}
  6. {$S+}                         {Stack checking on}
  7. {$N-}                         {No numeric coprocessor}
  8. {$m 65520,32398,655360}                                      {stack and heap}
  9.  
  10.  
  11. USES Crt, Dos, qwik, wndwvars, Wndw;
  12.  
  13. CONST 
  14.       Hit_String = 'Touch ''SPACE BAR'' to  Stop Display';
  15.  
  16. VAR Tempstring : STRING[255];
  17.   BBS_Call,  BBS_Type : string[10] ;
  18.   Master_Summary, Log_list, Log_File : STRING[80];
  19.   month, Current_Month, Activity : STRING[2];
  20.   Auto_year,  Year : STRING[4];
  21.   Operation : Char;
  22.   Message_Number : STRING[10];
  23.   OutFile, InFile, Listfile : Text;
  24.   In_Bulletins, In_Personals, In_Traffic, In_Others,
  25.   Out_Bulletins, Out_Personals, Out_Traffic, Out_Others,
  26.   FWD_Bulletins, FWD_Personals, FWD_Traffic, FWD_Others,
  27.   File_Up, File_Down, Yapp_Up, Yapp_Down, Reject_Count, Orig_Count,
  28.   logtype , Disp_Colour : Integer;
  29.   Flag_Auto : Boolean ;
  30.  
  31. TYPE name = STRING[45];
  32.  
  33.   FUNCTION exist(filename : name) : Boolean;
  34.     {$I-}
  35.   VAR fil : FILE;
  36.   BEGIN
  37.     Assign(fil, filename); Reset(fil);
  38.     IF IOResult = 0 THEN
  39.     BEGIN exist := True; Close(fil); END ELSE exist := False;
  40.     {$I+}
  41.   END;
  42.  
  43. procedure Woops;
  44. begin
  45.   makewindow(10 , 1, 4, 80, yellow+RedBG, yellow+RedBG, doublebrdr,
  46.                            StatusWindow);
  47.   TitleWindow (Top, Center, ' UNRECOGNIZED ENTRY');
  48.   writeln(^G);
  49.   writeln(tempstring); delay(1000) ;
  50.   RemoveWindow;
  51.   end;
  52.  
  53. procedure oops;
  54. begin
  55.   makewindow(10 , 25, 4, 30, yellow+RedBG, yellow+RedBG, doublebrdr,
  56.                            StatusWindow);
  57.   writeln(^G);
  58.   writeln( Log_File+' DOES NOT EXIST'); delay(1000) ;
  59.   RemoveWindow;
  60.   end;
  61.  
  62.  
  63. PROCEDURE W0RLI_Scan_Entry;
  64.   BEGIN
  65.     Disp_Colour := lightgreen;
  66.     Operation := Tempstring[12]; Activity := Copy(Tempstring, 12, 2);
  67.     IF Tempstring[1] = 'C' THEN Disp_Colour := yellow ELSE
  68.     IF Tempstring[1] = 'M' THEN BEGIN
  69.       Disp_Colour := white;
  70.       CASE Operation OF
  71.       'F' : {forward}
  72.             if Activity = 'F ' then inc(FWD_Personals) else
  73.             if Activity = 'F'+^I then inc(FWD_Personals) else
  74.             if Activity = 'FA' then inc(FWD_Bulletins) else
  75.             if Activity = 'FB' then inc(FWD_Bulletins) else
  76.             if Activity = 'FF' then inc(FWD_Bulletins) else
  77.             if Activity = 'FJ' then inc(FWD_Bulletins) else
  78.             if Activity = 'FP' then inc(FWD_Personals) else
  79.             if Activity = 'FT' then inc(FWD_Traffic) else
  80.             IF Activity = 'FR' then begin END ELSE
  81.             iF Activity = 'FE' THEN BEGIN END ELSE
  82.             IF Activity = 'FS' then begin END ELSE
  83.               BEGIN inc(Out_Others); Woops; END;
  84.       'Z' :
  85.               if Activity = 'Z ' then inc(In_Personals) else
  86.               if Activity = 'Z'+^I then inc(In_Personals) else
  87.               if Activity = 'ZA' then inc(In_Bulletins) else
  88.               if Activity = 'ZB' then inc(In_Bulletins) else
  89.               if Activity = 'ZF' then inc(In_Bulletins) else
  90.               if Activity = 'ZP' then inc(In_Personals) else
  91.               if Activity = 'ZS' then inc(In_Traffic) else
  92.               if Activity = 'ZT' then inc(In_Traffic) else BEGIN
  93.                 inc(Out_Others); Woops;
  94.               end;
  95.       'R' :
  96.               if Activity = 'RM' then inc(Out_Personals) else
  97.               if Activity = 'RN' then inc(Out_Personals) else
  98.               if Activity = 'RT' then inc(Out_Traffic) else
  99.               if Activity = 'R ' then inc(Out_Bulletins) else
  100.               if Activity = 'RH' then BEGIN END ELSE
  101.               IF Activity = 'R'+^I then inc(Out_Bulletins) else begin
  102.                 inc(Out_Others); Woops;
  103.               end;
  104.       'S' :
  105.               if Activity = 'S?' then inc(In_others) else
  106.               if Activity = 'SA' then inc(In_Bulletins) else
  107.               if Activity = 'SS' then inc(In_Traffic) else
  108.               if Activity = 'SP' then inc(In_Personals) else
  109.               if Activity = 'SM' then inc(In_Personals) else
  110.               if Activity = 'ST' then inc(In_Traffic) else
  111.               if Activity = 'SB' then inc(In_Bulletins) else
  112.               if Activity = 'SF' then inc(In_Bulletins) else
  113.               if Activity = 'SJ' then inc(In_Bulletins) else
  114.               if Activity = 'S ' then inc(In_Bulletins) else
  115.               if Activity = 'S'+^I then inc(In_Bulletins) else begin
  116.                 inc(In_others);  Woops;
  117.               end;
  118.       end;  {case}
  119.     END;  {messsage}
  120.     IF Tempstring[1] = 'F' {files} THEN BEGIN
  121.       IF Operation = 'D' THEN inc(File_Down);
  122.       IF Operation = 'U' THEN inc(File_Up);
  123.     end;
  124.     IF Tempstring[1] = 'F' THEN BEGIN
  125.       IF Activity = 'FD' THEN
  126.         begin inc(File_Down); Disp_Colour := Cyan; end;
  127.       IF Activity = 'FU' THEN
  128.         begin inc(File_Up); Disp_Colour := Cyan; end;
  129.     end;
  130.     IF Tempstring[1] = 'X' THEN Disp_Colour := Magenta;
  131.   END;
  132.  
  133. PROCEDURE B313_Scan_Entry;
  134.   BEGIN
  135.     Disp_Colour := lightgreen;
  136.     Operation := Tempstring[12]; Activity := Copy(Tempstring, 12, 2);
  137.     IF Tempstring[1] = 'C' THEN Disp_Colour := yellow ELSE
  138.     IF (Tempstring[1] = 'M') or (Tempstring[1] = 'T') THEN BEGIN
  139.       Disp_Colour := white;
  140.       CASE Operation OF
  141.       '$' ,  'F' : {forward}
  142.             if Activity = '$A' then inc(FWD_Bulletins) else
  143.             if Activity = '$B' then inc(FWD_Bulletins) else
  144.             if Activity = '$J' then inc(FWD_Bulletins) else
  145.             if Activity = '$F' then inc(FWD_Bulletins) else
  146.             if Activity = '$P' then inc(FWD_Personals) else
  147.             if Activity = '$T' then inc(FWD_Traffic) else
  148.             if Activity = '$ ' then inc(FWD_Personals) else
  149.             if Activity = '$'+^I then inc(FWD_Personals) else
  150.             if Activity = 'F ' then inc(FWD_Personals) else
  151.             if Activity = 'F'+^I then inc(FWD_Personals) else
  152.             if Activity = 'FA' then inc(FWD_Bulletins) else
  153.             if Activity = 'FB' then inc(FWD_Bulletins) else
  154.             if Activity = 'FF' then inc(FWD_Bulletins) else
  155.             if Activity = 'FJ' then inc(FWD_Bulletins) else
  156.             if Activity = 'FP' then inc(FWD_Personals) else
  157.             if Activity = 'FS' then inc(FWD_Traffic) else
  158.             if Activity = 'FT' then inc(FWD_Traffic) else begin
  159.               inc(Out_Others); Woops;
  160.             end;
  161.       '<' ,  '>' :
  162.               if Activity = '< ' then inc(In_Personals) else
  163.               if Activity = '<'+^I then inc(In_Personals) else
  164.               if Activity = '<A' then inc(In_Bulletins) else
  165.               if Activity = '<B' then inc(In_Bulletins) else
  166.               if Activity = '<F' then inc(In_Bulletins) else
  167.               if Activity = '<P' then inc(In_Personals) else
  168.               if Activity = '<S' then inc(In_Traffic) else
  169.               if Activity = '<T' then inc(In_Traffic) else
  170.               if Activity = '>A' then inc(In_Bulletins) else
  171.               if Activity = '>B' then inc(In_Bulletins) else
  172.               if Activity = '>F' then inc(In_Bulletins) else
  173.               if Activity = '>P' then inc(In_Personals) else
  174.               if Activity = '>S' then inc(In_Traffic) else
  175.               if Activity = '> ' then inc(In_Personals) else
  176.               if Activity = '>'+^I then inc(In_Personals) else
  177.               if Activity = '>T' then inc(In_Traffic) else begin
  178.                 inc(Out_Others); Woops;
  179.               end;
  180.       'R' :
  181.               if Activity = 'RM' then inc(Out_Personals) else
  182.               if Activity = 'RN' then inc(Out_Personals) else
  183.               if Activity = 'RT' then inc(Out_Traffic) else
  184.               if Activity = 'R ' then inc(Out_Bulletins) else
  185.               if Activity = 'R'+^I then inc(Out_Bulletins) else begin
  186.                 inc(Out_Others); Woops;
  187.               end;
  188.       'S' :
  189.               if Activity = 'S?' then inc(In_others) else
  190.               if Activity = 'SA' then inc(In_Bulletins) else
  191.               if Activity = 'SS' then inc(In_Traffic) else
  192.               if Activity = 'SP' then inc(In_Personals) else
  193.               if Activity = 'SM' then inc(In_Personals) else
  194.               if Activity = 'ST' then inc(In_Traffic) else
  195.               if Activity = 'SB' then inc(In_Bulletins) else
  196.               if Activity = 'SF' then inc(In_Bulletins) else
  197.               if Activity = 'SJ' then inc(In_Bulletins) else
  198.               if Activity = 'S ' then inc(In_Bulletins) else
  199.               if Activity = 'S'+^I then inc(In_Bulletins) else begin
  200.                 inc(In_others);  Woops;
  201.               end;
  202.       end;  {case}
  203.     END;  {messsage}
  204.     IF Tempstring[1] = 'F' {files} THEN BEGIN
  205.       IF Operation = 'D' THEN inc(File_Down);
  206.       IF Operation = 'U' THEN inc(File_Up);
  207.     end;
  208.     IF Tempstring[1] = 'Y' {yapp} THEN BEGIN
  209.       if Activity = 'YU' then
  210.         begin inc(Yapp_Up); Disp_Colour := lightblue ; end else
  211.       if Activity = 'YD' then
  212.         begin inc(Yapp_Down); Disp_Colour := lightblue ; end  else
  213.       if Activity <> 'YW' then Woops;
  214.     end;
  215.     IF Tempstring[1] = 'F' THEN BEGIN
  216.       IF Activity = 'FD' THEN
  217.         begin inc(File_Down); Disp_Colour := Cyan; end;
  218.       IF Activity = 'FU' THEN
  219.         begin inc(File_Up); Disp_Colour := Cyan; end;
  220.     end;
  221.     IF Tempstring[1] = 'X' THEN Disp_Colour := Magenta;
  222.   END;
  223.  
  224. procedure Make_Windows;
  225. begin
  226.   Setwindowmodes(0);
  227.   makewindow(1 , 1, 8, 80, white+blackBG, white+blueBG, doublebrdr, Inwindow);
  228.   TitleWindow (Top, Center, 'BBS LOG TRAFFIC ANALYSIS By G3ZCZ Version 2.0');
  229.   makewindow(9 , 1, 17, 80, lightgreen+blackBG, white+BlueBG, doublebrdr,
  230.                            OUTwindow);
  231.   TitleWindow (Top, Center, 'BBS LOG ENTRIES');
  232.   TitleWindow (Bottom, Center, Hit_String);
  233. end;
  234.  
  235. procedure Display_Headings;
  236. begin
  237.     AccessWindow(Inwindow); clearwindow; textcolor(yellow);
  238.     GotoRC(2,41); write('Year');          GotoRC(2,59); write('Month');
  239.     GotoRC(3,2); write('In_Bulletins ');  GotoRC(3,21); write('In_Personals ');
  240.     GotoRC(3,41); write('In_Traffic ');   GotoRC(3,59); write('In_Others ');
  241.     GotoRC(4,2); write('Out_Bulletins '); GotoRC(4,21); write('Out_Personals ');
  242.     GotoRC(4,41); write('Out_Traffic ');  GotoRC(4,59); write('Out_Others ');
  243.     GotoRC(5,2); write('FWD_Bulletins '); GotoRC(5,21); write('FWD_Personals ');
  244.     GotoRC(5,41); write('FWD_Traffic ');  GotoRC(5,59); write('FWD_Others ');
  245.     GotoRC(6,2); write('Yapp_uploads ');  GotoRC(6,21); write('Yapp_downloads ');
  246.     GotoRC(6,41); write('File_uploads '); GotoRC(6,59); write('File_downloads ');
  247.     GotoRC(7,2); write('Reject_Count ');  GotoRC(7,21); write('Orig_Count ');
  248. end;
  249.  
  250.   PROCEDURE Display_Summary;
  251.   BEGIN
  252.     AccessWindow(INwindow); Cursoroff; textcolor(white);
  253.     GotoRC(2,2);  write(BBS_Call);     GotoRC(2,21); write(Log_File);
  254.     GotoRC(2,54); write(Year);         GotoRC(2,74); write(Month);
  255.     GotoRC(3,16); write(In_Bulletins); GotoRC(3,36); write(In_Personals);
  256.     GotoRC(3,54); write(In_Traffic);   GotoRC(3,74); write(In_Others);
  257.     GotoRC(4,16); write(Out_Bulletins);GotoRC(4,36); write(Out_Personals);
  258.     GotoRC(4,54); write(Out_Traffic);  GotoRC(4,74); write(Out_Others);
  259.     GotoRC(5,16); write(FWD_Bulletins);GotoRC(5,36); write(FWD_Personals);
  260.     GotoRC(5,54); write(FWD_Traffic);  GotoRC(5,74); write(FWD_Others);
  261.     GotoRC(6,16); write(Yapp_up);      GotoRC(6,36); write(Yapp_down);
  262.     GotoRC(6,54); write(File_up);      GotoRC(6,74); write(File_down);
  263.     GotoRC(7,16); write(Reject_Count); GotoRC(7,36); write(Orig_Count);
  264.     AccessWindow(OUTwindow); textcolor(Disp_Colour) ;
  265.     writeln(tempstring);  (* delay(300); writeln(Operation,' ',Activity); *)
  266.   END;
  267.  
  268.  
  269.   PROCEDURE Clear_Variables;
  270.   BEGIN
  271.     Current_Month := '00';  Reject_Count := 0;  Orig_Count := 0;
  272.     logtype := 0;           In_Bulletins := 0;  In_Personals := 0;
  273.     In_Traffic := 0;        In_Others := 0;     Out_Bulletins := 0;
  274.     Out_Personals := 0;     Out_Traffic := 0;   Out_Others := 0;
  275.     FWD_Bulletins := 0;     FWD_Personals := 0; FWD_Traffic := 0;
  276.     FWD_Others := 0;        Yapp_Up := 0;       Yapp_Down := 0;
  277.     File_Up := 0;           File_Down := 0;     Disp_Colour := 4;
  278.   END;
  279.  
  280.  
  281. procedure Get_Details_of_Job;
  282. begin
  283.   makewindow(11 , 5, 10, 70, white+BlackBG, white+BlackBG, doublebrdr,
  284.                             dummywindow);
  285.  
  286.   Cursoron; Write ('What BBS Call ? '); Readln(BBS_Call) ;
  287.   Master_Summary := BBS_Call + '.ZCZ';
  288.   While logtype = 0 do begin
  289.  
  290.     Writeln('W0RLI (1), WA7MBL Auto (2), MBL313 (3), MBL512 (5)');
  291.     Write('What log type 1, 2, 3 or 5 ? ');  Readln(logtype) ;
  292.     if (logtype <0) or (logtype > 5) then logtype := 0;
  293.     case logtype of
  294.     1 : BBS_type := 'W0RLI';
  295.     2:  BBS_Type := 'AUTO' ;
  296.     3 : BBS_type := 'MBL313';
  297.     5 : BBS_type := 'MBL512';
  298.     else logtype := 0;
  299.     end;  {case}
  300.   end ; {while}
  301.   if (bbs_type = 'MBL512') or (bbs_type = 'AUTO') then begin
  302.     Write('Which Year (19XX) ? '); ReadLn(Year);
  303.     IF bbs_type = 'AUTO' then Auto_year := Year;
  304.   end;
  305.   Write('What Log list ? ') ; ReadLn(Log_List);
  306.   Removewindow;
  307. end;
  308.  
  309.   PROCEDURE Record_Summary;
  310.   BEGIN
  311.     {$I-}
  312.     Assign(OutFile, Master_Summary);
  313.     Reset(OutFile);
  314.     IF IOResult = 0 THEN Append(OutFile) ELSE BEGIN
  315.         Rewrite(OutFile);
  316.         WriteLn(OutFile,'"BBS_Call",', '"LOG FILE",', ' "BBS_Type",',
  317.          '"Year",',' "Month",',' "In_Bulletins",',' "In_Personals",',
  318.          ' "In_Traffic",', ' "In_Others",', '"Out_Bulletins",',
  319.          ' "Out_Personals",', ' "Out_Traffic",', ' "Out_Others",',
  320.          ' "FWD_Bulletins",',' "FWD_Personals",', ' "FWD_Traffic",',
  321.          ' "FWD_Others",', ' "Yapp_uploads",', ' "Yapp_downloads",',
  322.          ' "File_uploads",',' "File_downloads",', ',', ' "Reject_Count",',
  323.          ' "Orig_Count"');
  324.       END;
  325.     {$I+}
  326.     WriteLn(OutFile,'"',BBS_Call,'",', '"', Log_File, '","', BBS_Type, '"',',',
  327.      Year, ',',month, ',', In_Bulletins, ',', In_Personals, ',', In_Traffic, ',',
  328.      In_Others, ',', Out_Bulletins, ',', Out_Personals, ',', Out_Traffic, ',',
  329.      Out_Others, ',', FWD_Bulletins, ',',FWD_Personals,',', FWD_Traffic, ',',
  330.      FWD_Others, ',', Yapp_Up, ',', Yapp_Down, ',', File_Up, ',',
  331.      File_Down, ',', Reject_Count, ',', Orig_Count);
  332.     Close(OutFile) ;
  333.   END;
  334.  
  335. PROCEDURE B512_Scan_Entry;
  336. VAR i, j : Integer;
  337.   BEGIN
  338.     Activity := Copy(Tempstring, 11, 2);
  339.     i := 13; WHILE Tempstring[i] = ' ' DO inc(i); {start of number}
  340.     j := i;
  341.     (* WHILE (Tempstring[j] <> ' ') AND (J< 255) DO inc(j);            *)
  342.     WHILE (Tempstring[j] <> ' ') AND (J<length(Tempstring)) DO inc(j);
  343.     dec(j); {end of number}
  344.     Operation := Tempstring[j];
  345.     Message_Number := Copy(Tempstring, i, j-i);
  346.     If pos('M', Activity) = 1 then
  347.       Disp_Colour := white else Disp_Colour := lightgreen;
  348.     IF (Activity = 'MS') OR (Activity = 'M<') THEN BEGIN
  349.       CASE Operation OF
  350.         'B' : inc(In_Bulletins);
  351.         'P' : inc(In_Personals);
  352.         'T' : inc(In_Traffic);
  353.       ELSE inc(In_Others);
  354.       END;
  355.     END;
  356.     IF (Activity = 'M$') OR (Activity = 'MF') OR (Activity = 'M>') THEN BEGIN
  357.       CASE Operation OF
  358.         'B' : inc(FWD_Bulletins);
  359.         'P' : inc(FWD_Personals);
  360.         'T' : inc(FWD_Traffic);
  361.       ELSE inc(Out_Others);
  362.       END;
  363.     END;
  364.     IF (Activity = 'MN') THEN inc(Reject_Count);
  365.     IF (Activity = 'M*') THEN inc(Orig_Count);
  366.     IF (Pos('MVM',  Tempstring) = 11)
  367.     OR (Pos('MRM',  Tempstring) = 11)
  368.     OR (Pos('MRN',  Tempstring) = 11)
  369.     THEN inc(Out_Personals) ELSE BEGIN
  370.       IF (Activity = 'MV') OR (Activity = 'MR')
  371.       THEN inc(Out_Bulletins);
  372.     END;
  373.     IF pos('X', Tempstring) = 11 THEN Disp_Colour := Magenta;
  374.     IF pos('C', Tempstring) = 11 THEN Disp_Colour := yellow;
  375.     IF (Pos('YYU', Tempstring) = 11) THEN
  376.       begin inc(Yapp_Up); Disp_Colour := lightblue ; end;
  377.     IF (Pos('YYD', Tempstring) = 11) THEN
  378.       begin inc(Yapp_Down); Disp_Colour := lightblue ; end;
  379.     IF Activity = 'FD' THEN
  380.       begin inc(File_Down); Disp_Colour := Cyan; end;
  381.     IF Activity = 'FU' THEN
  382.       begin inc(File_Up); Disp_Colour := Cyan; end;
  383.     {add other scans here }
  384.   END;
  385.  
  386.   PROCEDURE Process_Log;
  387.   VAR p : Integer;
  388.       Temp_Month : STRING[2];
  389.       keychar : char ;
  390.   BEGIN
  391.     WHILE NOT EoF(InFile) DO BEGIN
  392.       ReadLn(InFile, Tempstring);
  393.       if (length(tempstring) > 1) or (tempstring[1] <> ' ') then begin
  394.         if bbs_type = 'AUTO' then begin
  395.           case tempstring[1] of
  396.           '0' .. '9' : begin bbs_type := 'MBL512'; Year := Auto_year ; end;
  397.           else bbs_type := 'MBL313';
  398.           end; {Case}
  399.         end ;
  400.         IF (BBS_Type = 'MBL313') or (BBS_Type = 'W0RLI') THEN BEGIN
  401.           year := '19'+ Copy(Tempstring, 2, 2); month := Copy(Tempstring, 4, 2);
  402.         END;                    {MBL313/W0RLI}
  403.         IF BBS_Type = 'MBL512' THEN month := Copy(Tempstring, 1, 2);
  404.  
  405.         IF Current_Month = '00' THEN Current_Month := month; {first entry}
  406.         IF month <> Current_Month THEN BEGIN
  407.           Temp_Month := month; clearwindow; month := Current_Month;
  408.           Record_Summary; Clear_Variables; Display_Headings;
  409.           Current_Month := Temp_Month;
  410.         END; {new month}
  411.         IF BBS_Type = 'MBL512' THEN B512_Scan_Entry;
  412.         IF BBS_Type = 'MBL313' THEN B313_Scan_Entry;
  413.         IF BBS_Type = 'W0RLI' THEN W0RLI_Scan_Entry ;
  414.         Display_Summary;
  415.         if keypressed then begin
  416.       TitleWindow (Bottom,Center,'Touch ''SPACE BAR'' to Start Display');
  417.           keychar := readkey;
  418.           if keychar = ' ' then begin
  419.             while not keypressed do begin end ; {wait}
  420.         TitleWindow (Bottom,Center,Hit_String);
  421.             keychar := readkey; keychar := '.' ;
  422.           end;
  423.         end;
  424.       end;      {length}
  425.     END; {while}
  426.   END;
  427.  
  428. BEGIN
  429.   clrscr; Clear_Variables; Log_File := 'DUMMY';
  430.   InitWindow(White+blackBG,True);                 {do this before all else}
  431.   Make_Windows;
  432.   Get_Details_of_Job;
  433.   if bbs_type = 'AUTO' then Flag_Auto := true else Flag_Auto := false;
  434.   IF exist(Log_List)THEN BEGIN
  435.     Clear_Variables; Display_Headings;
  436.     Assign(ListFile, Log_List); Reset(ListFile);
  437.     WHILE NOT EoF(ListFile) DO BEGIN
  438.       ReadLn(ListFile, Log_File);
  439.       if flag_Auto then bbs_type := 'AUTO';
  440.       IF exist(Log_File) THEN BEGIN
  441.         Assign(InFile, Log_File); Reset(InFile);
  442.         Process_Log; Close(InFile);
  443.         Record_Summary; Clear_Variables; Display_Headings;
  444.       END ELSE oops; {exist log-file}
  445.     END  {while} ;
  446. (*    Record_Summary; clrscr; Display_Summary; *)
  447.     CLOSE (Listfile);
  448.   END ELSE begin Writeln('List DOES NOT EXIST'); DELAY(2000); end;
  449.   RemoveWindow; RemoveWindow; Cursoron;
  450. END.
  451.