Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> удалить дубли в tstringlist, и удалить по списку 
:(
    Опции темы
AHTOLLlKA
  Дата 17.1.2010, 07:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 18.10.2007

Репутация: нет
Всего: нет



всем привет, сразу к делу а то оч надо
вот столкнулся стакой проблемой:
есть tstringlist
в нем список такой:
http://site1.ru/test/1.php
http://site1.ru/test/12313123.php
http://site1.ru/test/6t5463453565363.php
http://site3333.ru/main.php
http://site3333.ru/glvaaaaaaaaaa.php

тоесть список сайтов и есть одинаковые домены...
тоесть мне надо удалить дубли
как то надо брать первый пункт: http://site1.ru/test/1.php и искать по его моену дубли и удалять и потом со списком что осался продолжаить удалять дубли для каждого домена

как мне такое провернуть ?
PM MAIL ICQ   Вверх
Данкинг
Дата 17.1.2010, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Вот как-то так. Уникальные данные у нас оказываются в t2.
Код

procedure TForm1.FormCreate(Sender: TObject);
var t1,t2:tstringlist;
j,i:integer;
sss:string;
c:boolean;
begin
t1:=tstringlist.Create;
t1.Add('111');
t1.Add('222');
t1.Add('111');
t1.Add('333');
t1.Add('111');
t1.Add('333');
t1.Add('999');
t2:=tstringlist.Create;
for j:=0 to t1.Count-1 do
 begin
  sss:=t1.Strings[j];
  c:=false;
  for i:=0 to t2.Count-1 do
    if (t2.Strings[i]=sss) then c:=true;
 if not c then t2.Add(sss);
 end;
t2.Free;
t1.Free;
end;



--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
AHTOLLlKA
  Дата 17.1.2010, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 18.10.2007

Репутация: нет
Всего: нет



спасибо за ответ, попробуемс
PM MAIL ICQ   Вверх
Демо
Дата 17.1.2010, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 7
Всего: 50



Цитата(AHTOLLlKA @  17.1.2010,  07:24 Найти цитируемый пост)
как то надо брать первый пункт: http://site1.ru/test/1.php и искать по его моену дубли и удалять и потом со списком что осался продолжаить удалять дубли для каждого домена


Возможно сделать одним проходом по списку.
1. Создаём второй пустой список - отсортированный и с Duplicates := DupError; .
2. Организуем с конца цикл по первому списку
3. Выделяем домен из строки первого списка и пытаемся добавить во второй.
4. При неуспешном добавлении удаляем строку из первого списка.
5. После циклв удаляем второй список.

После окончания цикла первый список не содержит повторяющихся адресов доменов.




--------------------
    
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0689 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.