uses crt;
const rz=[' ',',','.','?','!'];{разделители слов}
var f:text;
i,k,p:byte;
name,s,sl:string;
begin
clrscr;
write('Имя файла для чтения: ');
readln(name);
name:=name+'.txt';
assign(f,name);
{$I-} reset(f); {$I+}{проверка существования файла}
if IOResult <> 0 then
begin
writeLn('Не могу открыть файл ',name);
writeLn('Работа программы завершена. Нажмите ENTER');
readln;
exit;
end;
write('Введите слово для пoиска в файле ',name);
readln(sl);
k:=0;
while not eof(f) do
begin
readln(f,s);
p:=pos(sl,s);{первое вхождение сочетания букв слова в строке}
if (p>0)and((p=1)or(s[p-1] in rz)){если есть и оно первое или перед ним разделитель}
and((s[p+length(sl)] in rz)or(p+length(sl)=length(sl))) {и за ним разделитель
или оно последнее в строке}
then k:=k+1;{считаем строку}
end;
close(f);
write('Количество строк, содеpжащих слово ',sl,' = ',k);
readln
end.