давно
Старший Модератор
31795
6196
10.02.2009, 17:46
общий
это ответ
Здравствуйте, Korniychug Petro Dmytrovich!
Программа в приложении.
Строка Seek(e,FileSize(e)-10); отвечает за перемещение указателя в файле на позицию десять символов(запятая, слово максимум 8 символов и точка) до конца файла(такой вариант работает при условии, что исходный файл записан правильно и после точки нет других символов). Без этой строки можно обойтись, но это получается двойной просмотр файла, который увеличивает время работы программы(такой вариант будет работать только до первой точки в файле).
Удачи!
Приложение:
var
a,b:string;
c:char;
d:longint;
e:file of char;{TEXT}
f:text;
begin
assign(e,'inp.txt');
reset(e);
assign(f,'out.txt');
rewrite(f);
Seek(e,FileSize(e)-10);
a:='';
{поиск последнего слова}
repeat
read(e,c);
if c=',' then a:=''{сбрасываем текущее слово, т.к. оно не последнее}
else if c<>'.'then a:=a+c;
until eof(e)or(c ='.');
{начинаем просмотр и запись}
reset(e);
b:='';
repeat
read(e,c);
if c=',' then
begin{проверяем совпадение и сбрасывает текущее слово}
if b<>a then write(f,b,c);
b:='';
end
else if c<>'.'then b:=b+c;
until eof(e)or(c ='.');
write(f,a,'.');
close(e):
close(f);
end.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.