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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.09.2009, 16:55   #1
Михаил70
Пользователь
 
Регистрация: 22.08.2009
Сообщений: 16
По умолчанию удалить в строке все одинаковые символы

Помогите пожалуйсто решить вот такую задачку.
Разработка редактора текста.
В окне формы записывается строка текста. Нужно удалить в строке все одинаковые символы.
Если сможете, напишите пожалуйсто мне код с коментариями.

Окно формы программы изображено на рисунке.

Заранее благодарен всем, кто откликнулся.
Изображения
Тип файла: gif image002.gif (10.9 Кб, 93 просмотров)
Михаил70 вне форума Ответить с цитированием
Старый 09.09.2009, 17:11   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а вы пробывали?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 09.09.2009, 17:11   #3
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Результат для твоей строки = ''. Никак не 'abcd' Потому, что в твоей строке присутствуют "aaaa","bbbb","cccc","dddd". Поконкретней, что требуется от строки?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 09.09.2009, 17:20   #4
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Вот что я придумал:
Код:
procedure TForm2.Button1Click(Sender: TObject);
var
 s, res: string;
 i: integer;
begin
 s := Edit1.Text;
 res := '';
 for i := 1 to Length(s) do
 begin
  res := res + s[1];
  s := StringReplace(s, s[1], '', [rfReplaceAll, rfIgnoreCase]);
  if Length(s) = 0 then Break;
 end;
 Edit2.Text := res;
end;
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума Ответить с цитированием
Старый 09.09.2009, 18:29   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

редактирование на месте
Код:
i:=1;
while i<length(s) do
begin
  if s[i]=s[i+1] then 
     Delete(s,i+1,1)
  else
    i:=i+1;
end;
формирование новой строки
в коде не учтен один случай (в этом случае будет ошибка)
Код:
result:=s[1];
for j:=1 to length(s) do
  if result<>s[i] then result:=result+s[i];
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 09.09.2009 в 18:36.
evg_m вне форума Ответить с цитированием
Старый 09.09.2009, 18:35   #6
Михаил70
Пользователь
 
Регистрация: 22.08.2009
Сообщений: 16
По умолчанию

Спосибо за помощь!!!!
Михаил70 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Все символы которые возможно набрать с клавиатуры Lime Помощь студентам 14 30.06.2009 10:38
как удалить лишнеие символы в строке, и ограничить длину строки MixanMM Общие вопросы Delphi 3 11.06.2009 07:03
как из строки ТМемо удалить ненужные символы MixanMM Общие вопросы Delphi 3 10.06.2009 13:49
Ввести строку, вывести на экран символы, повторяющиеся в строке более 2 раз. bibl2008 Помощь студентам 4 01.03.2009 13:30