Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2014, 00:57   #1
Алькер
Пользователь
 
Регистрация: 07.04.2014
Сообщений: 26
Восклицание В текстовом файле поменять все слова, содержащие цепочку "ола", на цепочку "оло".

В текстовом файле поменять все слова, содержащие цепочку "ола", на цепочку "оло"
Алькер вне форума Ответить с цитированием
Старый 13.05.2014, 08:30   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

вопрос раз. Зачем Вы задание своё тут написали? Хвастаетесь, какие Вы задачки умеете решать? Или зачем? Хотите заказать решение за деньги? Задание очень простое. Что у Вас конкретно не получается?

вопрос два. ничего не сказано про регистр - при замене учитывать регистр или нет?
Например, если дан текст Нет ПОЛА у Николая, а Оладьи положили ладно., то что должно быть после замены цепочек "ола", на цепочку "оло" ?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.05.2014, 08:44   #3
Алькер
Пользователь
 
Регистрация: 07.04.2014
Сообщений: 26
Восклицание

НУ у меня сейчас сдача курсача. И нужно это задание! И да. Как вы написали Нет ПОЛА у Николая, а Оладьи положили ладно..
Код:
var
 f: file of char; f1: text;
 s, s1: string; ch: char;
begin
 s1 := 'оло'; 
 assign(f, 'input.txt'); reset(f);
 assign(f1, 'output.txt'); rewrite(f1);
 while(not eof (f)) do
 begin
 s := '';
 repeat 
 read(f, ch); s := s + ch; 
 until ((ch = '') or (EOF(f))); 
 if (pos('ола', s) <> 0) then begin delete(s, pos('ола', s), 4); insert(s1, s, 1); end;
 write(f1, s); 
 end; 
 close(f); close(f1); 
end.
не работает!
Алькер вне форума Ответить с цитированием
Старый 13.05.2014, 09:03   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Алькер Посмотреть сообщение
И да. Как вы написали Нет ПОЛА у Николая, а Оладьи положили ладно..
Вы не ответили, после замены что должно получится в этой фразе?!?!?!


Цитата:
Сообщение от Алькер Посмотреть сообщение
не работает!
"смешались в кучу кони, люди.."
если Вы знаете про тип файловый text, то зачем Вам file of char ?

пробуйте:
Код:
var
 f1, f2: text;
 s, s1, s2 : string; 
 p : integer; 
begin
 s1 := 'ола'; 
 s2 := 'оло';
 assign(f1, 'input.txt'); reset(f1);
 assign(f2, 'output.txt'); rewrite(f2);
 while (not eof (f1)) do
 begin
  ReadLn(f1, s);
  p := Pos(s1, s);
  while p>0 do
  begin
    delete(s, p, Length(s1));
    insert(s2, s, p);
    p := Pos(s1, s);
  end;
  WriteLn(f2,s);
 end;
 close(f1);
 close(f2);
end.
p.s. в данном случае лучше не удаляя подстроки из строки и затем вставляя новую, а, банально, переписываем символов новой подстроки на место старой - ведь длина заменямой и новой подстроки совпадает!

ещё ВАЖНОЕ замечание.
при данном алгоритме цикл повторяется до тех пор, пока в строке есть заменяемая подстрока.
Поэтому НЕДОПУСТИМО, чтобы новая подстрока (s2) содержала внутри себя подстроку s1 (ну, если Pos(s1, s2) >0 - тогда программа уйдёт в бесконечный цикл!!!

Последний раз редактировалось Serge_Bliznykov; 13.05.2014 в 09:08.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.05.2014, 09:11   #5
Алькер
Пользователь
 
Регистрация: 07.04.2014
Сообщений: 26
По умолчанию

Надо что бы получилось Нет ПОЛО у Николая, а ОлОдьи положили ладно..... И не получается чет
Алькер вне форума Ответить с цитированием
Старый 13.05.2014, 09:13   #6
Алькер
Пользователь
 
Регистрация: 07.04.2014
Сообщений: 26
По умолчанию

получилоссь!! Просто большие буквы не видит! Вы меня спасли!!!
Алькер вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывести в порядке возрастания все целые числа которые находятся между "А" и "В" С++ (визуальный режим) программирование Помощь студентам 5 23.01.2014 02:14
Постоянно слетает галочка "автоматически" в "Параметры Excel", "Формулы", "Вычисления в книге" Alexsandrr Microsoft Office Excel 4 19.10.2013 14:22
Создать класс "Фигура", от него наследованием создать 3 класса ("треугольник", "четырехугольник", "окружность") funnyy Помощь студентам 3 17.10.2012 17:40
Вывести название соответствующей карты вида "шестерка бубен", "дама червей","туз треф" и т.п. воваава Помощь студентам 3 01.12.2011 12:50
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04