Текущий архив: 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.45 MB
Время: 0.005 c