СОРТИРОВКА

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

СОРТИРОВКА

Сообщение er_admin » 04.06.2004 (Пт) 22:52

помогите сделать сортировку.

делаю прогу с ListView. встроенная сортировка неправильно работает с числами:
1
10
11
2

пробовал сортировать по ASCII ,не получилось.
но нужно чтобы правильно сортировались и цифры, и буквы, и вперемежку.
у меня только что-то одно получается:-(
может есть у кого модуль. киньте на мыло er_admin@ok.kz

Shurrik
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 110
Зарегистрирован: 20.05.2004 (Чт) 5:35
Откуда: Керчь, Крым

Сообщение Shurrik » 05.06.2004 (Сб) 5:54

Сортировка работает по алфавиту и не "видит" значение числа, поэтому, если есть возможность приведи все свои числа к одному виду. Например: 0001, 0102 и т.д. с помощью функции n$=FORMAT(n%,"0000"). Или пиши собстенную сортировку.
Колесо: Хочешь жить? Умей вертеться.

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 05.06.2004 (Сб) 9:29

Нужно
1) Listview1.sorted=false
2) С помощью API SendMessage послать сообщение LVM_Sortitems с указанием адреса функции обратного вызова, производящей сравнение двух элементов (фугнкцию можно сделать любую по своему усмотрению)

!!! Скорее всего, сортировка будет работать медленне, чем стандартная.

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 05.06.2004 (Сб) 9:40

См. пример на сортировку по дате

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 05.06.2004 (Сб) 9:40

См. пример на сортировку по дате
Вложения
Sample.zip
(7.54 Кб) Скачиваний: 42

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 05.06.2004 (Сб) 15:42

Ещё один вариант сортировки- добавить ещё один столбец и заполнть его текстом с учётом фоматирования, т.е. если в основном столбце 1, 10, то в дполнительном - 01, 10 . Дополнительный столбец сделать скрытым, т.е с шириной=0. Это имеет смысл, если имеются к-л априорные сведения о том, чтоможет быть в столбце (например, сколько может быть букв). Затем отсортировать по скрытому столбцу.

Третий вариант - сортировать вручную с помощью программы на VB, реализовав один из известных методов сортировки (сравнив два элемента, при необходимости их переставить, для чего написать модифицированную пп сравнения строк - она нужна и для первого способа с помощью API).


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

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

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

    TopList