Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.04;
Скачать: CL | DM;

Вниз

Сортировка в TList   Найти похожие ветки 

 
Max ©   (2004-03-19 14:34) [0]

Здравствуйте!


type
 PMyListItem = ^AMyListItem;
 AMyListItem = record
   Values: array[0..5] of String;
 end;


TList содержит элементы PMyListItem. Как отсортировать элементы TList по нескольким "полям". Т.е. сортировать по Values[0], Values[1], Values[2], при сначала по Values[0], если совпадает, то по Values[1] и если тоже совпадает то по Values[2].


 
Digitman ©   (2004-03-19 14:55) [1]

см. TList.CustomSort()


 
Max ©   (2004-03-19 15:06) [2]

Digitman
А почему-то не нашел в TList такого :(


 
Тимохов ©   (2004-03-19 15:10) [3]

полагаю dm хотел сказать sort
customsort это из tstringlist


 
Digitman ©   (2004-03-19 15:15) [4]


> Max ©   (19.03.04 15:06) [2]


если бы ты искал решение в принципе, давно бы наткнулся на метод Sort... и без меня и без моей неточности давно нашел бы ...

репу чесать хоть чуть-чуть надо же ...


 
Max ©   (2004-03-19 15:17) [5]

Тимохов
Допустим вот функция для сортировки
function ListSort(Item1, Item2: Pointer): Integer;
begin
 if PMyListItem(Item1)^.Values[0] <> PMyListItem(Item2)^.Values[0] then
   Result := CompareItems(PMyListItem(Item1)^.Values[0], PMyListItem(Item2)^.Values[0])
 else
   Result := CompareItems(PMyListItem(Item1)^.Values[1], PMyListItem(Item2)^.Values[1]);
end;


Но как я знаю, при таком способе сортировка не будет доведена до конца...


 
Max ©   (2004-03-19 15:20) [6]

Digitman
Я про него знаю, знаю как отсортировать по одному "полю", а как по нескольким сообразить не могу.


 
Digitman ©   (2004-03-19 15:34) [7]

"Боня, ты - тупой !" (С) КВН

for i:= 0 to 5 do
begin
Result := CompareText(PMyListItem(Item1).Values[I], PMyListItem(Item2).Values[I]);
if Result = 0 then
  break;
end;


 
Digitman ©   (2004-03-19 15:43) [8]

Боня - это я))

if Result <> 0 then
  break;



Страницы: 1 вся ветка

Текущий архив: 2004.04.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.021 c
4-1074912216
Reals
2004-01-24 05:43
2004.04.04
Узнать выделенный текст в чужом окне.


6-1075135863
kor@l
2004-01-26 19:51
2004.04.04
HTTP


7-1074706015
Nick_Omsk
2004-01-21 20:26
2004.04.04
Как узнать поля принтера


1-1079130133
graf
2004-03-13 01:22
2004.04.04
RxRichEdit


4-1074974589
Дубинин Алексей
2004-01-24 23:03
2004.04.04
Вылетает ошибка при проверке правильности пути