Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.021 c
9-1063210212
DRON
2003-09-10 20:10
2004.04.04
DelphiX &amp; PowerDraw


14-1078728567
reticon
2004-03-08 09:49
2004.04.04
Гипноз


1-1079424786
Noway
2004-03-16 11:13
2004.04.04
shift: TShiftState;


14-1078600476
Undert
2004-03-06 22:14
2004.04.04
Где можно почитать о том


9-1063816318
witalick
2003-09-17 20:31
2004.04.04
Игра на Delphi/Flash




   Наверх