HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

[Delphi] Вопрос на засыпку #3
  #1  
Старый 11.05.2010, 20:11
RedFern.89
Постоянный
Регистрация: 20.01.2010
Сообщений: 338
С нами: 8582863

Репутация: 69
По умолчанию [Delphi] Вопрос на засыпку #3

есть Memo примероного содержания:

Код:
 Mygarin - Signs of Existence 
 mygrain - W.T.F.
 Mygarin - Signs of Existence
 MyGrain - Killing Time 
 MyGrain - W.T.F.
 MyGrain - W.T.F.
желтым отмеченны повторяющиеся строчки, подлежащие удалению.

вопрос! как удалить все одинаковые строчки, оставляя только одну копию? Получится должно типа того:

Код:
 Mygarin - Signs of Existence 
 mygrain - W.T.F.
 MyGrain - Killing Time
всем заранее спасибо. Извините за такое ламерство.

Последний раз редактировалось RedFern.89; 11.05.2010 в 20:13..
 
Ответить с цитированием

  #2  
Старый 11.05.2010, 20:16
intNet
Познающий
Регистрация: 31.05.2009
Сообщений: 68
С нами: 8919750

Репутация: 19
По умолчанию

ппц. гугл - не?
самое простое - через промежуточный TSTringList(есть свойство Duplicates, которому присвоиваешь dupIgnore).
 
Ответить с цитированием

  #3  
Старый 11.05.2010, 20:17
RedFern.89
Постоянный
Регистрация: 20.01.2010
Сообщений: 338
С нами: 8582863

Репутация: 69
По умолчанию

блин.. у мну моги щас кипят.. ктонить подкинет код?
 
Ответить с цитированием

  #4  
Старый 11.05.2010, 20:19
intNet
Познающий
Регистрация: 31.05.2009
Сообщений: 68
С нами: 8919750

Репутация: 19
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  With TStringList.Create() do
  begin
    Duplicates := dupIgnore;
    Sorted := True;
    AddStrings(Memo1.Lines);
    Memo1.Clear();
    Memo1.Text := Text;
    Free();
  end;
end;
 
Ответить с цитированием

  #5  
Старый 11.05.2010, 20:20
RedFern.89
Постоянный
Регистрация: 20.01.2010
Сообщений: 338
С нами: 8582863

Репутация: 69
По умолчанию

спасибо! а без сортировки можно какнить обойтись?
 
Ответить с цитированием

  #6  
Старый 11.05.2010, 20:21
Jaw
Новичок
Регистрация: 12.04.2010
Сообщений: 4
С нами: 8464181

Репутация: 1
По умолчанию

Код:
var
i:integer;
begin
i:=0;
while i < form1.Memo1.Lines.Count do
begin
if form1.Memo1.Lines.IndexOf(form1.Memo1.Lines[i]) < i then
form1.Memo1.Lines.Delete(i)
else
inc(i);
end;
end;
 
Ответить с цитированием

  #7  
Старый 11.05.2010, 20:22
intNet
Познающий
Регистрация: 31.05.2009
Сообщений: 68
С нами: 8919750

Репутация: 19
По умолчанию

Сортировка не нужна, можешь её убрать.
 
Ответить с цитированием

  #8  
Старый 11.05.2010, 20:23
RedFern.89
Постоянный
Регистрация: 20.01.2010
Сообщений: 338
С нами: 8582863

Репутация: 69
По умолчанию

всем спасибо! вопрос закрыт..
 
Ответить с цитированием

  #9  
Старый 11.05.2010, 20:26
Dizz
Новичок
Регистрация: 09.05.2010
Сообщений: 1
С нами: 8426486

Репутация: 0
По умолчанию

Jaw, при большом кол-ве строк этот код оч. долго будет удалять дубли
 
Ответить с цитированием

  #10  
Старый 11.05.2010, 20:46
Jaw
Новичок
Регистрация: 12.04.2010
Сообщений: 4
С нами: 8464181

Репутация: 1
По умолчанию

Dizz, к сожелению или к счастью ты был прав мой код справился с файлом в ~5k строк за 2 минуты, код intNet за считаные милесекунды.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Блокировка WMID. Рекомендации на вопрос "Что делать?" corp. Howard ltd Платежные системы 94 31.05.2010 23:32
Вопрос про сливы и тп Sulf aka Joker Болталка 0 15.01.2010 16:07
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопрос по Php и Html Archie PHP 9 26.05.2006 16:43



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.