Всем привет.
Вопрос: Как удалять дубликаты без сортировки?
Т.е удаляется только так
StrList.Duplicates:=dupIgnore;
StrList.Sorted:=True;
Решение:
Аналогичный, на мой взгляд даже более удобный, алгоритм реализации этой процедуры связан с использованием метода обработки исключений. Если вместо StrList.Duplicates:=dupIgnore для обработки дубликатов использовать значение dupError, это вызовет исключительную ситуацию при попытке добавить дубликат. Соответственно, при добавлении оригинальной строки программа идёт дальше, а при попытке добавления дубликата переходит к операторам секции except/end.
Эти методы работают в случае если список отсортирован. Однако есть задачи, где сортировка не нужна, а находить значение в списке всё равно необходимо. В этом случае нужно пользоваться функцией IndexOf.
Последний раз редактировалось \PaLaDin/; 16.06.2015 в 22:27.