home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / library / dos / communic / tp55 / suchtext.pas < prev   
Encoding:
Pascal/Delphi Source File  |  1990-02-01  |  1.8 KB  |  70 lines

  1. program suchtext;
  2.  
  3. uses crt,extend;
  4.  
  5. var
  6. ch                 :  char;
  7. textzeichen        :  set of char;
  8. fsize,fpos,z       :  longint;
  9. zeile              :  string[255];
  10. infile             :  file of char;
  11. outfile            :  text;
  12.  
  13. begin
  14.   clrscr;
  15.   write  ('Dateiname : ');
  16.   readln (zeile);
  17.   if not exist(zeile) then
  18.   begin
  19.     writeln(zeile,' nicht gefunden...');
  20.     halt;
  21.   end;
  22.   assign (infile,zeile);
  23.   reset  (infile);
  24.   fsize            := filesize(infile);
  25.   assign (outfile,'suchtext.out');
  26.   rewrite(outfile);
  27.   writeln(outfile,zeile);
  28.   zeile            := '';
  29.   textzeichen      := [#32..#122,#129,#132,#142,#148,#153,#154,#225];
  30.   z                := doszeit;
  31.   while (filepos(infile) < fsize) do
  32.   begin
  33.     if length(zeile) > 59 then
  34.     begin
  35.         fpos       := filepos(infile)-length(zeile);
  36.         writeln(fpos:6,' ',length(zeile):3,'  "',zeile,'"');
  37.         writeln(outfile,fpos,'/',length(zeile),'/',zeile,'/');
  38.         zeile      := '';
  39.     end;
  40.  
  41.     read   (infile,ch);
  42.     if (ch in textzeichen) then
  43.     begin
  44.       zeile        := zeile + ch;
  45.     end
  46.     else
  47.     begin
  48.       if length(zeile) > 4 then
  49.       begin
  50.         fpos       := filepos(infile)-length(zeile)-1;
  51.         writeln(fpos:6,' ',length(zeile):3,'  "',zeile,'"');
  52.         writeln(outfile,fpos,'/',length(zeile),'/',zeile,'/');
  53.       end;
  54.       zeile        := '';
  55.       fpos         := filepos(infile);
  56.       if fpos < (fsize - 10) then
  57.       begin
  58.         seek  (infile,fpos+5);
  59.         read  (infile,ch);
  60.         if (ch in textzeichen) then
  61.           seek  (infile,fpos);
  62.       end;
  63.     end;
  64.   end;
  65.   z                := (doszeit - z) div 18 ;
  66.   writeln('Zeitbedarf: ca. ',z,' s');
  67.   close  (infile);
  68.   close  (outfile);
  69. end.
  70.