ОБСУЖДЕНИЕ

Сортировка

6 ответов 5,9 тыс.
Статус
Закрыто для дальнейших ответов.
Автор темы
помогите убрать из списка одинаковые строки
12
45
65
345
534
23
345
65
90
67
чтоб выводил
12
45
65
345
534
23
90
67
 
Воспользуйся такой процедурой:

procedure DelDuplicates(SL: TStringList);
var
i, j: integer;
begin
for i := 0 to SL.Count - 1 do
begin
for j := SL.Count - 1 downto i + 1 do
begin
if SL.Strings = SL.Strings[j] then
SL.Delete(j);
end;
end;
end;
 
Большое спасибо
 
Через хэш можно быстрее сделать, если список будет достаточно большой, это может дать хороший выигрыш.
 
Или предварительно отсортировав строки быстрой сортировкой. Когда строк несколько тысяч, эффект будет очень заметен.
 
Для такого вопроса нельзя предлагать использовать хэш .. или надо тогда сначала объяснять что такое хэш и быстрая сортировка :angry:
 
Можно воспользоваться услугами типа Set - "множество".
 
Статус
Закрыто для дальнейших ответов.