Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.07.2009, 16:46   #1
AquaKlaster
Delphi,Python,PHP
Форумчанин
 
Аватар для AquaKlaster
 
Регистрация: 04.04.2009
Сообщений: 138
По умолчанию Удаления дубликатов строк memo

как удалить дубликаты строк в мемо?
AquaKlaster вне форума Ответить с цитированием
Старый 20.07.2009, 16:52   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Например в цикле проходя по всем элементам или ссообщением LB_FINDSTRING или StringReplace можно применить.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.07.2009, 16:57   #3
AquaKlaster
Delphi,Python,PHP
Форумчанин
 
Аватар для AquaKlaster
 
Регистрация: 04.04.2009
Сообщений: 138
По умолчанию

Stilet, пример можно? исходник желательно, просто очень надо
AquaKlaster вне форума Ответить с цитированием
Старый 20.07.2009, 17:05   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Например так:
Код:
var k,i:Integer;
begin
 k:=2;
 i:=ListBox1.Perform(LB_FINDSTRING,k,integer(pchar(ListBox1.Items[k])));
 while i<>k do begin
  ListBox1.Items.Delete(i);
  i:=ListBox1.Perform(LB_FINDSTRING,k,integer(pchar(ListBox1.Items[k])));
 end;
end;
Здесь k-номер строчки, дубликаты которой удалятся.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.07.2009, 17:18   #5
AquaKlaster
Delphi,Python,PHP
Форумчанин
 
Аватар для AquaKlaster
 
Регистрация: 04.04.2009
Сообщений: 138
По умолчанию

Stilet, я так понял мне с мемо прийдётся в листбокс перекидать а потом удалять дубли, а для мемо ничего такого нет?
AquaKlaster вне форума Ответить с цитированием
Старый 20.07.2009, 19:46   #6
lexaltd
Форумчанин
 
Регистрация: 21.07.2008
Сообщений: 192
По умолчанию

Загони всё в TStringList
У TStringList есть свойство Duplicates
и потом обратно в Memo

Только свойство Duplicates работает оказывается , только с сортировкой , если так пойдёт то вот код
Код:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
  SL : TStringList;
  i : integer;
begin
  SL := TStringList.Create;
  SL.Sorted := true;
  SL.Duplicates := dupIgnore;
  SL.AddStrings(Memo1.Lines);
  Memo1.Clear;
  Memo1.Lines.AddStrings(SL);
  SL.Free;
end;
Вот без сортировки
Код:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
  SL : TStringList;
  i, i2 : integer;
  flag : Boolean;
begin
  SL := TStringList.Create;
  SL.AddStrings(Memo1.Lines);
 for i := Memo1.Lines.Count - 1 downto 0 do
  begin
   flag := False;
   for i2 := SL.Count - 1  downto  0 do
    begin
      if Memo1.Lines[i] = SL.Strings[i2] then
         if flag then
          SL.Delete(i2)
          else
          flag := True;
    end;
  end;
  Memo1.Clear;
  Memo1.Lines.AddStrings(SL);
  SL.Free;
end;

Последний раз редактировалось lexaltd; 20.07.2009 в 20:31.
lexaltd вне форума Ответить с цитированием
Старый 20.07.2009, 21:24   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а так не проще??
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  i : integer;
begin
 i := 0;
 while i < Memo1.Lines.Count do
 begin
   if Memo1.Lines.IndexOf(Memo1.Lines[i]) < i then
     Memo1.Lines.Delete(i)
   else
     inc(i);
 end;
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.07.2009, 23:46   #8
AquaKlaster
Delphi,Python,PHP
Форумчанин
 
Аватар для AquaKlaster
 
Регистрация: 04.04.2009
Сообщений: 138
По умолчанию

ребят спс всем буду пробывать!
AquaKlaster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объединение строк в Memo Leksda Общие вопросы Delphi 12 24.03.2009 13:54
Удаление строк из Memo Leksda Общие вопросы Delphi 6 20.03.2009 15:31
удаление дубликатов и группировка строк Serglen Microsoft Office Excel 2 30.07.2008 15:51
Memo - кол-во строк. Лубышев Компоненты Delphi 1 17.05.2008 22:54
Нумерация строк в Memo Макс84 Компоненты Delphi 10 02.04.2007 17:10