Главная страница
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
11-1196072469
vampir_infernal
2007-11-26 13:21
2008.11.30
Меню формы


15-1222766110
Квэнди
2008-09-30 13:15
2008.11.30
watches list process is not acessible


11-1196036263
Донской
2007-11-26 03:17
2008.11.30
BeginThread


15-1222454964
Городской Шаман
2008-09-26 22:49
2008.11.30
Насколько разработчики игр серьезные люди?


15-1222777842
oldman
2008-09-30 16:30
2008.11.30
А ведь сегодня День Интернета в России...