Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/29: Рейтинг темы: голосов - 29, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 18.06.2014
Сообщений: 5

Заменить строку в текстовом файле

18.06.2014, 11:09. Показов 6304. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан текст, хранящийся в текстовом файле. Написать программу, которая позволит заменить строку в тексте
с заданным номером (вывести ее) на другую. Вывести могу, а заменить не получается, помогите.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
var f:text;
i,n:integer;
s:string;
begin
assign(f,'txt.txt');
reset(f);
readln(n);
 for i:=1 to n do readln(f,s);
 writeln(s);
 
close(f);
readln
end.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.06.2014, 11:09
Ответы с готовыми решениями:

Процедура: заменить в текстовом файле каждую цифру на следующую по величине ('9' заменить на '0')
Используя подпрограмму-процедуру, заменить в текстовом файле каждую цифру на следующую по величине('9' заменить на '0').

В текстовом файле заменить все цифры на римские
Привет. Вот задача к сессии... не хватает меня что-то на нее.. Дан файл C:\1.txt, заменить в нем все цифры на римские. ...

В текстовом файле заменить последовательность символов !?! на пробелы
Помогите.

6
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
18.06.2014, 11:20
это не так просто, как может показаться.

вот, для начала, ознакомтесь с этой темой: Как перемещатся по строкам, и как удалить строку в текстовом файле
1
0 / 0 / 0
Регистрация: 18.06.2014
Сообщений: 5
18.06.2014, 11:28  [ТС]
То есть, взять 2 текстовых файла? Удалить, как написано там, и вставить нужную строку.
и далее, переименовать?
0
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
18.06.2014, 11:36
в цикле читаем все строки из первого файла и записываем их в выходной (второй) файл.
считаем номера строк.
Как только дошли до нужной строки НЕ ПИШЕМ её в выходной файл, а пишем вместо неё новую строку (которая должна заменить старую, ведь проблема в этом, как я понимаю...)
повторяем цикл до тех пор, пока входной файл не закончится.

Если закончился и замена была, тогда удаляем исходный файл (или переименовываем его в .BAK), затем второй файл (временный), куда мы писали строки и куда вывели заменённую строку, переименовываем в исходное имя.

профит.
0
0 / 0 / 0
Регистрация: 18.06.2014
Сообщений: 5
18.06.2014, 11:48  [ТС]
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
var f,f2:text;
i,n:integer;
s,s1:string;
begin
assign(f,'txt.txt');
reset(f);
readln(n);
 for i:=1 to n do readln(f,s);
 writeln(s);
 readln(s1);
 Assign (f2,'vivod.txt');
       rewrite (f2);
       i:=0;
        while not eof (f) do
         begin
          inc(i);
          readln(f,s);
          if i<>n then writeln (f2,s);
          if i=n then writeln(f2,s1);
         end;
     close (f);
     close (f2);
    erase(f);
     rename (f2, 'txt.txt');
 
readln
end.
получается, что код удаляет из файла столько строк, сколько ввел в n. и потом уже в n-ую строку вставляет строку, которую ввел для замены
0
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
18.06.2014, 11:56
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

чуток не так.
но в правильно направлении двигались!

попробуйте такой код:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
var f,f2:text;
  i,n:integer;
  s:string;
begin
  assign(f,'txt.txt');
  reset(f);
  WriteLn('Введите номер строки для замены: ');
  readln(n);
  Assign (f2,'temp$$$$.txt');
  rewrite (f2);
  i:=0;
  while not eof(f) do begin  
     inc(i);
     readln(f,s);
     if i<>n then
        writeln(f2,s)
     else {нашлась строка с номером N} 
       begin
         WriteLn('Строка с номером ',N,':', s);
         WriteLn('введите новую строку (для замены): ');
         readln(s);
         writeln(f2,s);
       end;
     close (f);
     close (f2);
     erase(f);
     rename (f2, 'txt.txt');
     readln
end.
не проверял....
1
0 / 0 / 0
Регистрация: 18.06.2014
Сообщений: 5
18.06.2014, 12:02  [ТС]
Премного благодарен, помогло!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.06.2014, 12:02
Помогаю со студенческими работами здесь

Заменить в текстовом файле цифры на следюущие по порядку
Дан текстовый файл, в котором помимо букв встречаются цифры. Заменить все цифры на следующие по списку, т.е. 0 на 1, 1 на 2, 2 на 3 и т.д....

В текстовом файле заменить все группы пробелов на один пробел
В текстовом файле заменить все группы пропусков , больше 1 на 1 пробел. Помогите решить задачу. Заранее спасибо.

Заменить в файле одну строку на другую
Дан символьный файл f. Написать программу, которая каждую букву &quot;б&quot; в файле f заменяет сочетанием &quot;ку&quot;. unit Program1; ...

Как перемещатся по строкам, и как удалить строку в текстовом файле
Имеется текстовый файл. Как в нем можно перемещаться по строкам, и как удалить всю строку целиком?

Дана строка S и один текстовый файл. Заменить в файле все пустые строки на строку S
Дана строка S и один текстовый файл. Заменить в файле все пустые строки на строку S. Уже сам сделал) program a1; var k:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru