![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
String и повторяющиеся элементы [D7, XP]
cruiser © (2008-10-20 23:12:00)Здравствуйте мастера. Помогите с решением небольшой задачки.
Нужно из строки вида: 'Маша,Игорь,Яна,Яна,Маша,Анна,Игорь' путем исключения повторяющихся элементов получить строку вида 'Маша,Игорь,Яна,Анна'. Причем количество и разновидность элементов (имен в данном случае) неизвестно. Заранее спасибо!
Германн (2008-10-21 01:26:00) [1]
> cruiser © (21.10.08 00:33) [4]
>
> sniknik - всё работает! Спасибо еще раз огромное!
>
Хелп читать надо. И книжки тоже. Иначе будешь "такого понаворотил, что и сам запутался " всю жизнь! :)
cruiser (2008-10-21 00:33:00) [2]sniknik- всё работает! Спасибо еще раз огромное!
cruiser (2008-10-21 00:32:00) [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;
sniknik (2008-10-21 00:26:00) [4]
var sList: TStringList;
begin
with TStringList.Create do
try
Sorted := true;
Duplicates := dupIgnore;
Delimiter := ',';
DelimitedText:= 'Маша,Игорь,Яна,Яна,Маша,Анна,Игорь';
Edit1.Text:= DelimitedText;
finally
Free;
end;
end;
MsGuns (2008-10-20 23:59:00) [5]Строку распарсить и пофрагменто записать в TStrings, предварительно проверяя на наличие аналога. Затем из TStrings собрать строку..