Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.009 c
2-1224226329
Владик
2008-10-17 10:52
2008.11.30
каскадное удалении записи в таблице


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


2-1224231868
NieL
2008-10-17 12:24
2008.11.30
COM и 1С


3-1210660109
Михаил
2008-05-13 10:28
2008.11.30
Диапазон типа DATE у FB2.03


2-1224493145
Alex7
2008-10-20 12:59
2008.11.30
возврат двух значений одним вызовом одной функции




   Наверх