Программа


Uses Crt;
Const NormText=LightGray;
      DistingText=White;
Var F:text;
    FindString:string;  { Искомая строка }
    Ch:char;            { Текущий символ }
    MeterChar:integer;  { Счетчик символов }
    X,Y:integer;        { Вычисляемые координаты курсора }
    i:integer;          { Счетчик }
    TextAttrBuf:Byte;   { Переменная для сохранения атрибутов текста }
    EOL:boolean;        { Флаг конца строки }
BEGIN
  TextAttrBuf:=TextAttr;  { Сохранение начальных атрибутов текста }
  ClrScr;
  Write('Искомая строка: ');
  ReadLn(FindString);
  ClrScr;
  Assign(F,'FINDER.PAS');
  Reset(F);
  MeterChar:=0;
  repeat { Цикл просмотра файла с чтением символа конца файла }
    Read(F,Ch);
    EOL:=Ch in [#13,#10,#26];
    Inc(MeterChar);
    if MeterChar>Length(FindString) then MeterChar:=1;
    TextAttr:=DistingText;
    if not EOL then Write(Ch);
    Delay(50);
    if Ch<>FindString[MeterChar]
      then begin
             if EOL then MeterChar:=MeterChar-1;
             X:=WhereX-MeterChar;
             Y:=WhereY;
             while X<1 do begin
                            X:=X+80;
                            Y:=Y-1
                          end;
             GoToXY(X,Y);
             TextAttr:=NormText;
             if EOL then MeterChar:=MeterChar+1;
             for i:=1 to MeterChar-1 do Write(FindString[i]);
             if Ch<>#26 then Write(Ch)
                        else WriteLn;
             MeterChar:=0
           end;
  until Ch=#26;
  Close(F);
  TextAttr:=TextAttrBuf;
  Ch:=ReadKey;
  ClrScr
END.

Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию