home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / magazine / pctchnqs / 1991 / number5 / wincount.pas < prev    next >
Pascal/Delphi Source File  |  1991-09-18  |  1KB  |  61 lines

  1. PROGRAM WinCount;
  2.  
  3. USES
  4.   WinCrt,
  5.   WinDos;
  6.  
  7. VAR
  8.   FileName : string;
  9.   Start, Stop, TotalWords : longint;
  10.   loop : byte;
  11.  
  12. FUNCTION FileExists (FileName : string) : boolean; far;
  13. EXTERNAL 'WRDCOUNT' index 1;
  14.  
  15. PROCEDURE CountFile (FileName : string;
  16.              VAR Start, Stop, FinalCount : longint); far;
  17. EXTERNAL 'WRDCOUNT' index 2;
  18.  
  19. BEGIN
  20.     writeln ('WinCount 1.1, Windows Word Counter');
  21.   writeln ('written by David Gerrold');
  22.   writeln ('assembler code by David Neal Dubois');
  23.  
  24.   repeat
  25.     writeln;
  26.     FileName := ParamStr (1);
  27.     if FileName > '' then
  28.       if not FileExists (FileName) then begin
  29.         writeln ('Sorry, I can''t find ''', FileName, '''.');
  30.         FileName := '';
  31.         end;
  32.  
  33.     if FileName = '' then begin
  34.       writeln;
  35.       writeln ('Please enter a valid file name.');
  36.       write ('What file do you want to count?  ');
  37.       readln (FileName);
  38.       end;
  39.  
  40. { upcase the FileName }
  41.       for loop := 1 to length (FileName) do
  42.         FileName [loop] := upcase (FileName [loop]);
  43.   until
  44.     FileExists (FileName) or (FileName = '');
  45.  
  46.   if FileName = '' then begin
  47.     writeln;
  48.     writeln ('Execution halted.');
  49.     end
  50.   else begin
  51.     writeln;
  52.     writeln ('Counting ', Filename);
  53.     CountFile (FileName, Start, Stop, TotalWords);
  54.     WriteLn;
  55.     WriteLn ('Total number of words in file:  ', TotalWords:10);
  56.       WriteLn ('Total time: ', (Stop - Start)/1000:10:2, ' seconds.');
  57.     end;
  58. END.
  59.  
  60.  
  61.