Здесь нужно использовать вс типизированный файл и, соответственно, вторую файловую переменную (fr2). Сделать это можно так: while not eof(fr) and (kol=0) do begin read(fr, Marshrut); if (Marshrut.NK.N <> '11') then write(fr2,Marshrut) else begin inc(kol); y:=Marshrut; end; end; if not eof(fr) then begin read(fr, Marshrut); write(fr2,Marshrut); end; if (kol=1) then write(fr2,y); Дальше нужно просто переписать оставшиеся записи из первого файла во второй. Затем оба файла закрыть, первый файл удалить, а второй переименовать (т.е. назвать его так, как назывался первый файл).
Попробуйте ещё вот такой вариант: (здесь k1 и k2 - целые, а y - типа ) if (Marshrut.NK.N = '11') then begin writeln('... '); inc(kol); y:=Marshrut; k1:=FilePos(fr)-1; k2:=FilePos(fr); if not eof(fr) then begin read(fr, Marshrut); seek (fr, k1); write(fr, Marshrut); seek (fr, k2); write (fr, y); end;
Точнее сказать - чем word отличается от программы Writer из пакета OpenOffice. Word имеет больше функций. Это важно тем, кто много профессионально работает с текстами. Кстати, Word 2010 умеет сохранять в PDF. Зато Writer может читать все форматы Word, а Word не может читать формат Writer - формат .odt. Word - платный. Если сравнивать OpenOffice с Word 2007 и выше, то они отличаются друг от друга совершенно разным расположением кнопочек и панелей. Если ты привык к Word, то тяжело привыкать к OpenOffice. И наоборот. Это я знаю по себе. Но это - дело привычки. Есть целые предприятия, которые перешли но OpenOffice. Еще могу сказать, что Writer дольше запускается. Правда, потом работает без тормозов. Вывод: нельзя сказать, какой лучше. Если для себя - то достаточно OpenOffice поставить, ибо он уже стабильный и по-честному бесплатный.