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

Вниз

Tstringlist - сортировка по value   Найти похожие ветки 

 
Me   (2008-10-14 16:30) [0]

Добрый день.

Есть следующие данные в tstringlist.text:

Jack=3
Bobby=5
Chris=9
Todd=2
Mike=1

Требуется отсортировать данный tstringlist, чтобы в итоге получилось:
Mike=1
Todd=2
Jack=3
Bobby=5
Chris=9

Требуется, чтобы алгоритм сортировал данный tstringlist по убыванию.

- Собственных идей нет, поэтому прощу помощи профессионалов.

Заранее спасибо!


 
Сергей М. ©   (2008-10-14 16:35) [1]

Самый простое - использовать TStrringList.CustomSort


 
Me   (2008-10-14 16:42) [2]

Спасибо за быстрый ответ!

Вас не затруднит показать исходный код реализации данного алгоритма с CustomSort?


 
Сергей М. ©   (2008-10-14 16:48) [3]

Не затруднит.

Но хотелось бы знать, была ли Вами перед этим проштудирована стандартная справка на предмет изучения назнаячения и работы этого метода, а также были ли попытки поиска  в Интернете готовых примеров его использования ?


 
Me   (2008-10-14 16:51) [4]

Беусловно данный комплекс действий был проведен — к величайшему сожалению, подходящих результатов поиска в поисковых системах (Yandex, Google) к подходящему результату не привели.

Поэтому глубочайше прошу показать исходный код реализации данного алгоритма с CustomSort.

Спасибо!


 
Сергей М. ©   (2008-10-14 17:06) [5]


function CompareFunc(List: TStringList; Index1, Index2: Integer): Integer;
var
 i1, i2: Integer;
 s1, s2: String;
begin
 s1 := List[Index1];
 s2 := List[Index2];
 i1 := StrToInt(Copy(s1, Succ(Pos(s1,"="), Length(s1));
 i2 := StrToInt(Copy(s2, Succ(Pos(s2,"="), Length(s2));
 if i1 > i2 then Result := 1
 else if i1 < i2 then Result := -1
 else Result := 0;
end;
..
MyStringList.CustomSort(@CompareFunc);


 
Me   (2008-10-14 17:26) [6]

Огромное спасибо :)


 
Сергей М. ©   (2008-10-14 17:26) [7]

Сразу видно - партнер !


 
Юрий Зотов ©   (2008-10-16 17:38) [8]

А почему не ValueFromIndex? Ведь NameValueSeparator может быть и другим.


 
palva ©   (2008-10-20 20:47) [9]


>  if i1 > i2 then Result := 1
>  else if i1 < i2 then Result := -1
>  else Result := 0;
>

Result := i1 - i2;
так тоже должно работать.



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

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

Наверх




Память: 0.48 MB
Время: 0.015 c
15-1222867079
Правильный$Вася
2008-10-01 17:17
2008.11.30
24 сентября прошло


2-1224477221
Fynjy
2008-10-20 08:33
2008.11.30
путь к файлу в разделе HKEY_CURRENT_USER software printer name


2-1224101559
deras
2008-10-16 00:12
2008.11.30
Как вложить в тело письма html код?


15-1222809240
Германн
2008-10-01 01:14
2008.11.30
Работа с Голубым Зубом


2-1224237799
Rolf
2008-10-17 14:03
2008.11.30
Работа с класом внутри функции.