Сортировка цифр в ListView

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
GreenT
Новичок
Новичок
 
Сообщения: 39
Зарегистрирован: 17.08.2003 (Вс) 13:42

Сортировка цифр в ListView

Сообщение GreenT » 23.11.2003 (Вс) 23:41

Братья программисты, подскажите пожайлуста...
В ListView добавляются данные, причем в одном столбике строчные, а в другой цифровые.

Вопрос: как сделать сортировку по цифровым данным.
Встроенная функция сортировки сортирует по первым цифрам, т.е.
1
223
3

и т.д. Это есть неудовлетворительно.

Может кто подскажет какой нибуть способ, а то в ручную сортировку писать неохота.

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 24.11.2003 (Пн) 9:45

Я обычно выхожу из этой ситуации, добавляя в начало чисел необходимое количество 0. То есть не

1

223

3

а



001

003

223

GreenT
Новичок
Новичок
 
Сообщения: 39
Зарегистрирован: 17.08.2003 (Вс) 13:42

Сообщение GreenT » 24.11.2003 (Пн) 19:53

RayShade, спасибо за совет.

Может, кто нибуть знает какое нибуть решение без изменения вида данных?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 26.11.2003 (Ср) 13:21

1. Делаешь скрытый столбец (ширина = 0), в котором числа записаны с ведущими нулями и сортируешь по нему.
2. Делаешь свою процедуру сортировки и прикручиваешь ее к ListView (отправляешь сообщение LVM_SORTITEMS). Только тебе надо будет описать структуру LVITEM, т.к. элементы ListView передаются через нее. И еще: не знаю почему, возможно потому, что ActiveX поддерживает настоящий ListView не полностью, но мне так и не удалось заставить работать этот способ. Т.е. тебе создавать ListView надо через API.
Lasciate ogni speranza, voi ch'entrate.

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 27.11.2003 (Чт) 1:36

а я бы предложил .... коль уж это цифры ... перевести их в цифры и рассортировать ... или просто также как массив сортировал ... в школе помнишь учили нашел больший поменял местами ... тока сравнивай через VAL(List1.List(I))
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 27.11.2003 (Чт) 11:13

alibek, я когда MSDN смотрел по поводу CreateWindowEx, то в списке стилей нашёл только всякие кнопки, эдиты и скроллы. Листов и деревьев нету там. Подскажи, какие системные имена классов у этих контролов?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 8

    TopList