![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| YURIC |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 5.8.2003 Репутация: нет Всего: 1 |
Здарствуйте уважаемые,
Подскажите как сделать правильную соритровку листбокса, т.е. чтобы строки правилно сортировались, а не так как там по дефульту. Есть Lisbox1.Sorted:=true; Результат:
Надо Lisbox1.Sorted:=true; Результат:
Подскажите... Это сообщение отредактировал(а) YURIC - 22.10.2005, 18:40 |
||||
|
|||||
| Quadr0 |
|
|||
|
Unregistered |
...
Это сообщение отредактировал(а) Quadr0 - 15.7.2011, 02:23 |
|||
|
||||
| Самурай |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 20.10.2005 Где: Воронежская облас ть > Семилуки Репутация: 1 Всего: 1 |
Мысли вслух:
Находить начало цифр в двух сравниваемых строках, т. е. на одном и том же индексе стоит число, а перед этим числом не символ-число (минус учитываем). Далее мы получаем числа в каждой строке. Меньшее по количеству цифрчислро дополняем до количества цифр в другом путем приписывания в конец нулей. Дальеш стравниваем числа. Та строка, в которой большее число, будет стоять ниже другой. Итого простая ручная сортировка. Примечание: если у нас числа оказались одинаковыми, то ниже будет стоять строка, в которую мы не добавляли нули. По-моему этот алгоритм достаточно просто реализовать, и он должен сработать к приведенному примеру. |
|||
|
||||
| Самурай |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 20.10.2005 Где: Воронежская облас ть > Семилуки Репутация: 1 Всего: 1 |
Кое-что написал. Проверил - работает на нескольких вариантах.
Добавлено @ 20:22 Предложенный пример сортируется... |
|||
|
||||
| YurikGL |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 5.7.2005 Где: Уфа Репутация: нет Всего: 2 |
ИМХО все намного проще....
Я бы написал функцию типа
Она возвращает число, которое находится в конце строки. Далее сортировал бы
--------------------
|
||||
|
|||||
| Самурай |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 20.10.2005 Где: Воронежская облас ть > Семилуки Репутация: 1 Всего: 1 |
Если отталкиваться именно от примера. А если вдруг последние символы - не цифры, т. е. сортировка должна проходить по внутренним циферкам? |
|||
|
||||
| YurikGL |
|
||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 5.7.2005 Где: Уфа Репутация: нет Всего: 2 |
Тогда если надо все цифры вытащить то переделываем
Если нужно последнюю последовательность вытащить то
Алгоритм сортировки остается без изменений --------------------
|
||||||
|
|||||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |