| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > Сортировка по VALUE в ValueListEditor |
| Автор: Pcrepair 13.11.2013, 20:55 | ||
Добрый день. Есть процедура,которая сортирует пару KEY--VALUE(слово--число) по значению VALUE и передает результат в ValueListEditor, для просмотра
Но сортировка идет немного не так как нужно, в частности: рпрпропопр--99 пиропиррор--87 прррпррппр--33 титититьит--223 рпрпрпрпрр--12 хотя строка титититьит--223 в ValueListEditor должна быть наверху так как 223 больше чем 99 Вопрос: где ошибка и как поправить? |
| Автор: БелАмор 13.11.2013, 22:32 | ||
| В данном случае сравнивать нужно не как строки, а переводить строки в числа и сравнивать уже их. Вы невнимательно смотрели в прошлом вопросе по этой теме: http://forum.vingrad.ru/forum/topic-372348/anchor-entry2584577/0.html
DefVal - значение, принимаемое для строк, которые не удаётся перевести в Integer. Задавая очень большое или очень малое число, можно группировать, например, пустые строки в начале или в конце списка. |
| Автор: Pcrepair 13.11.2013, 22:44 |
| Спасибо, будем пробовать |
| Автор: Poseidon 13.11.2013, 23:24 |
| Где-то на форуме был код Вита, по которому вычислялась длинна самого большого числа и все строки, короче этой длинны забивались нулями в начале. Получалось сравнение строк 099, 087, 033, 223, 012. Такие строки отсортируются как числа. |
| Автор: Pcrepair 14.11.2013, 08:48 | ||
правильный ответ
там еще дробные числа нужно обрабатывать |
| Автор: Poseidon 14.11.2013, 15:44 |
| Pcrepair, очень приятно будет наблюдать ошибки конвертации при передаче в List текстовых строк. |
| Автор: Pcrepair 14.11.2013, 19:42 |
| это исключено на предыдущем этапе |
| Автор: БелАмор 14.11.2013, 20:40 |
Поспешное утверждение. Конкретная ситуация на вскидку: После заполнения ValueListEditor (или даже во время заполнения) пользователь лезет в панель управления, от скуки играется с региональными настройками, и меняет десятичный разделитель. Как отреагирует ваш код? Вы хотя бы предусмотрели запрет автоматического обновления региональных настроек внутри программы при изменении их в системе? |
| Автор: Pcrepair 15.11.2013, 12:19 |
| никуда никакой пользователь не лезет. оператор нажимает на Ф3, это фсе. остальное делает прграмма, автоматически жаль пока нельзя оператора иллюминировать |