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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2012, 02:57   #1
Саша1194
Новичок
Джуниор
 
Регистрация: 19.03.2012
Сообщений: 1
По умолчанию Алгоритмизация и программирование задач создания и обработки типованих и текстовых файлов

Создание обработки текстового файла
Во всех словах приставка "под" заменить на "пере"
Саша1194 вне форума Ответить с цитированием
Старый 19.03.2012, 05:29   #2
Niro
Форумчанин
 
Аватар для Niro
 
Регистрация: 23.09.2010
Сообщений: 682
По умолчанию

Примерно так
Код:
begin
  while not eof (textfile) do
    begin
      k:= 0;
      readln (textfile, stroka);
      while k <> length (stroka) do
        begin
          inc (k);
          if s[k]='п') and (s[k+1]='о') and (s[k+2]='д') and (s[k-1]=' ') 
            then 
              begin
                delete (stroka, k, 3);
                insert ('пере', stroka, k);
             end;
        end;
    end;
end.
Код не проверял
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить.
Niro вне форума Ответить с цитированием
Старый 19.03.2012, 09:12   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Niro
Код не проверял
ну и правильно сделали. Код жуткий. Вы же сознательно идёте на то, что индексы у Вас выходят за пределы строки (как влево, так и вправо).
(я уже молчу о том, что первый раз в строке может встретиться под без ведущего пробела)
тогда уже лучше так:
Код:
while not eof (f) do begin
    ReadLn(f, stroka);
    while Pos('под',s)>0 do begin
       k := Pos('под',s);
       if  k=1 then begin
          Delete(stroka, k, 3);
          insert('пере', stroka, k);
       end
       else {значит k>1}
          if copy(stroka,k-1,1)=' ' then begin
          Delete(stroka, k, 3);
          insert('пере', stroka, k);
       end;       
    end;

    {вывод полученной строки}
    ....

end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.03.2012, 22:06   #4
Arhangel7
Пользователь
 
Регистрация: 27.02.2010
Сообщений: 90
По умолчанию

а чем плох 'StringReplace' ?
как-то так
Arhangel7 вне форума Ответить с цитированием
Старый 20.03.2012, 22:14   #5
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
а чем плох 'StringReplace' ?
Тем что скорее всего Язык Паскаль
И компилятор turbo pascal
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программирование операций обработки файлов Andrey93 Паскаль, Turbo Pascal, PascalABC.NET 1 16.05.2011 18:38
Добавление данных в текстовые файлы. Другие процедуры и функции для обработки текстовых файлов student2009 Помощь студентам 1 02.06.2009 08:44
Добавление данных в текстовые файлы. Другие процедуры и функции для обработки текстовых файлов student2009 Паскаль, Turbo Pascal, PascalABC.NET 5 01.06.2009 21:27
программирование задач с применением записей и файлов ЯН_КА Помощь студентам 3 18.04.2009 17:14
Программирование операций обработки файлов Дима82 Фриланс 1 19.05.2008 13:57