Главная страница
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.035 c
3-1078201011
Алексей Петухов
2004-03-02 07:16
2004.04.04
Оптимизация БД


3-1078210812
aga123
2004-03-02 10:00
2004.04.04
GUID в поле таблицы DBF


11-1058329802
Александр |
2003-07-16 08:30
2004.04.04
Ресурсы


3-1078867699
Anarki
2004-03-10 00:28
2004.04.04
Как вручную задать ширину столбца DBGrid (динамически)?


1-1079353222
PiratA
2004-03-15 15:20
2004.04.04
MDI children