Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.11.30;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.005 c
15-1222535144
Анонимм
2008-09-27 21:05
2008.11.30
Шахматная задачка из ветки


2-1224576210
Вопрошающий
2008-10-21 12:03
2008.11.30
ExportGridToExcel не экспортирует второй уровенть


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


3-1210716522
Beer_Hunter
2008-05-14 02:08
2008.11.30
Временная таблица


2-1224236676
РВА
2008-10-17 13:44
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский