Главная страница
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.049 c
3-1078512059
dma_database
2004-03-05 21:40
2004.04.04
TTable TDataBase


7-1074459243
Thor
2004-01-18 23:54
2004.04.04
переделка схемы для порта.


1-1079590631
Tornado
2004-03-18 09:17
2004.04.04
Распечатка Memo


1-1079195963
Sormy
2004-03-13 19:39
2004.04.04
Картинки в RxRichEdit v1.75


3-1078393464
Bless1
2004-03-04 12:44
2004.04.04
Куда исчезают параметры TADOStoredProc?