Программа
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.
Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию