Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.11.30;
Скачать: CL | DM;

Вниз

String и повторяющиеся элементы   Найти похожие ветки 

 
cruiser ©   (2008-10-20 23:12) [0]

Здравствуйте мастера. Помогите с решением небольшой задачки.
Нужно из строки вида: "Маша,Игорь,Яна,Яна,Маша,Анна,Игорь"  путем исключения повторяющихся элементов получить строку вида "Маша,Игорь,Яна,Анна". Причем количество и разновидность элементов (имен в данном случае) неизвестно. Заранее спасибо!


 
MsGuns ©   (2008-10-20 23:59) [1]

Строку распарсить и пофрагменто записать в TStrings, предварительно проверяя на наличие аналога. Затем из TStrings собрать строку..


 
sniknik ©   (2008-10-21 00:26) [2]

var sList: TStringList;
begin
 with TStringList.Create do
   try
     Sorted       := true;
     Duplicates   := dupIgnore;
     Delimiter    := ",";
     DelimitedText:= "Маша,Игорь,Яна,Яна,Маша,Анна,Игорь";
     Edit1.Text:= DelimitedText;
   finally
     Free;
   end;
end;


 
cruiser ©   (2008-10-21 00:32) [3]

Огромное спасибо, а то уже такого понаворотил, что и сам запутался :)
Вот что у меня выходило в коде и не работало:
var m,n:integer;
s1,s3,s2,s,sm:string;

begin
s:="";
s2:="";
s1:=edit1.Text;
s3:=s1;
for m := 1 to length(s1) do // ðàçáèðàåì ñòðîêó íà îòäåëüíûå ýëåìåíòû
 begin
  if s1[m]="," then  // îñòàíîâèëèñü åñëè  ñèìâîë çàïÿòàÿ
  begin
   for n := 1 to length(s3) do  // ðàçáèðàåì ïðîìåæóòî÷íóþ ñòðîêó íà îòä ýë-òû
    begin
     if s3[n]="," then
      begin
       if s2=s then
       begin
       sm:=sm+s2;
       s:="";
       end ;
       end
       else s:=s+s3[n]
      end;
     s2:="";
   end
  else
   begin
    s2:=s2+s1[m];
   end;
 end;
 showmessage (sm);
end;


 
cruiser ©   (2008-10-21 00:33) [4]

sniknik - всё работает! Спасибо еще раз огромное!


 
Германн ©   (2008-10-21 01:26) [5]


> cruiser ©   (21.10.08 00:33) [4]
>
> sniknik - всё работает! Спасибо еще раз огромное!
>

Хелп читать надо. И книжки тоже. Иначе будешь "такого понаворотил, что и сам запутался " всю жизнь! :)



Страницы: 1 вся ветка

Текущий архив: 2008.11.30;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.013 c
4-1201550703
Звоновский
2008-01-28 23:05
2008.11.30
Подскажите как ужнать имя сласс по handle окона


8-1188300158
Dr. Andrew
2007-08-28 15:22
2008.11.30
Ошибка при заполнении текста bitmap. Почему?


2-1223920451
Ruzzz
2008-10-13 21:54
2008.11.30
как работать с TSplitter у которого Align := alNone ?


15-1222827051
Другг
2008-10-01 06:10
2008.11.30
Как перенести настройки Delphi 7 с одной Виндос на другую?


3-1210663653
Tornado
2008-05-13 11:27
2008.11.30
Grid от EhLib