Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Помогите со строками...


Автор: Denwer 14.1.2008, 20:54
Есть слова в Memo1.  
Нужно преобразовать таким образом чтобы
остались в словах только первые вхождения каждой буквы;
Результат вывести в Memo2.

Например такие слова (azzzzzzzz, azzbbzzzzaaaa, aaaaabbbbbb)
должно вывести az, azb, ab.

Автор: source777 14.1.2008, 21:12
Ну, и в чём проблема, где твой код?

Автор: tommy256 14.1.2008, 21:38
Если следующий символ равен предыдущему, то ты его не пишешь, иначе ты записываешь в новую строку   smile 

Автор: Denwer 14.1.2008, 22:19
Вот код, который был предназначен для того чтобы пройтись по мемо и вывести слова повторяющиеся только по одному разу.
Я там добалил пару строк, не дело не в этом.
Он выводит буквы в столбик, вот в чём беда.



Код

 for j:=0 to Memo1.Lines.Count - 1 do
 begin
 s := Memo1.Lines[j];
 n := 0;
 for i := 0 to Length(s) - 1 do
  begin
   for k := i + 1 to Length(s) - 1 do
   if s[i] = s[k] then Inc(n);
   if n = 0 then Memo2.Lines.Add(s[i]);
  n := 0;
  end;
end;


Автор: tommy256 14.1.2008, 22:36
в отдельную переменную записывай s2:=' '; s2:=s2+s[i] а потом только аж пишешь Memo2.Lines.Add(s2)

Ты получается записывал по одному символу в строку, и получась как бы таблица smile

Автор: Denwer 14.1.2008, 23:04
Блин, не хочет... 

Автор: tommy256 14.1.2008, 23:39
Ну попробуй так: 
Код

for j:=0 to Memo1.Lines.Count - 1 do
begin
 s:=Memo1.Lines[j]
S2:=s[1];          // другой переменне присваивается первый символ
if s[j+2] <> s[j+3] then S2:=S2+s[j+3]; 
   // если следующий символ не равен предыдущему то записываем его в переменную S2
if s[j+3] = s[0] then Memo2.Lines.Add(S2); // проверяем не является ли текущий символом последним, если - да , то записываем в Мемо2
end;

Автор: Denwer 15.1.2008, 00:27
Буду пробовать... Алгоритм интересный
Эта задача как бы требует вывести
из слова все неповторяющиеся буквы, и так можно сказать.

Автор: tommy256 15.1.2008, 00:32
Задачи стандартные smile в Универах такое дают  smile 

Автор: Denwer 15.1.2008, 00:38
Дело в том учусь заочно... Хрен кто что объяснит
Приходиться выживать...

Автор: tommy256 15.1.2008, 00:43
P.s учусь стационарно, фик кто что объяснит smile Тут есть люди которые в сто раз знают лучше преподов. Vingrad'y Respect smile

Сорри за  smile 

Автор: MetalFan 15.1.2008, 01:13
можно на регулярках попробовать  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)