Главная страница
    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.46 MB
Время: 0.004 c
3-1210753890
tommy
2008-05-14 12:31
2008.11.30
ADO + postgresql OLE DB Provider


2-1224222180
SKIPtr
2008-10-17 09:43
2008.11.30
управление менеджером закачек


15-1222785303
Петр1(с)
2008-09-30 18:35
2008.11.30
ЖК монитор и его вред


2-1224549620
koha!
2008-10-21 04:40
2008.11.30
неприодалимый глюк погите разобраться в VCL


15-1222253957
Delperec
2008-09-24 14:59
2008.11.30
Как проверить принадлежность точки кругу?..





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский