Самое длинное слово (2 уровень)

Условие:
Найти самое длинное слово в тексте. Если таких слов несколько, то взять первое.

Технические условия:
Программа должна читать текст из файла "input.txt" и выводить самое длинное слово в файл "output.txt".

Примеры входного и выходного файлов:

Input.txt

Output.txt

Маша ела кашу.

Маша

 

Решение:

var
f:text;text,str,max:string;
i,n:integer;
begin
assign(f,'input.txt');
reset(f);
readln(f,text);
while not Eof(f) do begin readln(f,str);text:=text+' '+str;end;
close(f);
i:=0; while text[i]<>' ' do inc(i);
max:=copy(text,1,i-1);inc(i,-1);{
Первое слово принимаем за максимальное}
REPEAT
inc(i);if text[i]=' ' then
begin
inc(i);n:=i;while (text[i]<>' ') and (i<>length(text)) do inc(i);
str:=copy(text,n,i-n);
if length(str)>length(max) then max:=str;inc(i,-1);end;
{
Если текущее слово длинее максимального, принимаем его за максимальное}
UNTIL i=length(text);
assign(f,'output.txt');
rewrite(f);
write(f,max);
close(f);
end.