Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сортировка массива в MS VB 6.0 
:(
    Опции темы
Alexxxander
Дата 9.8.2005, 09:07 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Как можно отсортировать двумерный (впрочем, и одномерный) массив? Точнее, таблицу. Например:
Код
Dim a
a = Array(Array("1", 12, 13), Array("2", 22, 23), Array("3", 32, 33))

Это маленький кусок массива, на самом деле он может содержать сотни значений. В нем есть столбцы разного типа. Нужно отсортировать по третьей колонке (13,23,33). А внутри -- по 2й колонке (12,22,32).
В Excel, если массив находится в ячейках таблицы, это легко сделать методом Sort.
А как это сделать в обычном VB?

  Вверх
Akina
Дата 9.8.2005, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



VB не имеет встроенных функций/процедур для сортировки массивов.

Варианты:

1) Самостоятельно выполнить сортировку. Исходники берем на algolist и адаптируем под задачу.
2) Затолкать массив в объект, имеющий методы сортировки, и воспользоваться ими.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Guest
Дата 9.8.2005, 13:46 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Спасибо.
Цитата(Akina @ 9.8.2005, 10:06)
2) Затолкать массив в объект, имеющий методы сортировки, и воспользоваться ими

А какие объекты могут подойти для этого дела?
  Вверх
cardinal
Дата 9.8.2005, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Цитата(Guest @ 9.8.2005, 11:46)
А какие объекты могут подойти для этого дела?

Ну например ListBox
Пишешь:
Код

Private Sub Command1_Click()
List1.AddItem "z"
List1.AddItem "f"
List1.AddItem "b"
List1.AddItem "c"
List1.AddItem "a"
End Sub

Запускаешь, смотришь. Потом изменяешь свойство ListBox'a Sorted на True и запускаешь тоже самое еще раз. Видишь результат. smile


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Akina
Дата 9.8.2005, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Но я бы все-таки сортировал сам. А если за элементами массива числится какой-то реальный смысл - сделал бы коллекционный класс с методом Sort.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
cardinal
Дата 9.8.2005, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Тем более, что QSort'ами всякими весь форум завален: smile
см. поиск:
http://forum.vingrad.ru/index.php?act=Sear...s&highlite=sort
Например тут Vach постарался smile
http://forum.vingrad.ru/index.php?showtopic=16854
или тут
http://forum.vingrad.ru/index.php?showtopic=24655


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0823 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.