Форум: "Основная";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
ВнизСортировка в 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.033 c