:в типизированном файле поменять местами две записи. то есть дан номер маршрута marshrut.nk.n, количество остановок до метро marshrut.nk.k. надо найти маршрут 11 и поменять его местами со след записью. вот часть кода именной этой процедуры, с сортировкой т.к. та, которая написана ниже не робит. var marshrut, y: tmarshrut; vidtransporta: tvidtransporta; fr: file of tmarshrut; n, kol, k: integer; filename: string[80]; begin while not eof(fr) and (kol=0) do begin read(fr, marshrut); if (marshrut.nk.n = '11') then begin writeln('маршрут: ',marshrut.nk.n, ' количество остановок до метро: ',marshrut.nk.k); inc(kol); k: =filepos(fr)-1; y: =filepos(fr); seek (fr, 0); write (fr, y); seek (fr, 1); write (fr, k); write('в файле изменена запись номер', k+1); write(fr, marshrut); end; end; if kol=0 then writeln('данные, соответствующие запросу, не найдены'); closefile(fr); write('press enter'); readln; end;
271
406
Ответы на вопрос:
Здесь нужно использовать типизированный файл и, соответственно, вторую файловую переменную (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; end;
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
Zenya111113.09.2022 17:02
-
528414419.10.2020 21:05
-
lui1920.06.2022 01:20
-
karolina8509.01.2021 23:49
-
Eduardo019283746530.12.2022 20:01
-
unkn0wned01.10.2020 17:54
-
лидуська2201.02.2023 12:42
-
Дария240327.09.2022 18:46
-
valeriaro29422.11.2021 14:57
-
dianag14151722.10.2022 08:44
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.