Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Сортировка Value list / 10 сообщений из 10, страница 1 из 1
04.11.2004, 12:59:17
    #32768557
Yanis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка Value list
Имеется список значений для комбобокса - строка вида
"Один;Два;Три;Сто пятьдесят"
Каким образом будет проще отсортировать этот список - привести его к виду
"Два;Один;Сто пятьдесят;Три"?
...
Рейтинг: 0 / 0
04.11.2004, 13:01:49
    #32768564
Kelme
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка Value list
Value list отсортировать наверно не получится.

Перенеси эти значения в таблицу и выбирай и сортируй оттуда :)
...
Рейтинг: 0 / 0
04.11.2004, 13:16:39
    #32768617
Yanis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка Value list
Тогда получается довольно много таких таблиц, причем все небольшие - в районе 10 значений.

В общем, я собираюсь сделать функцию
Function GetList(listID As Double) As String
которая будет возвращать строку-список, отсортированную по значениям. Пока простых алгоритмов в голову не приходит, вот и хотелось в очередной раз убедиться, что все гениальное - просто...
...
Рейтинг: 0 / 0
04.11.2004, 13:17:56
    #32768620
ищ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка Value list
если строка формируется
динамически, то есть ограничение
по длине строки. поэтому этот способ
не хорош.
предлагаю создать свободный
рекордсет. в него добавлять данные.
рекрдсет можно сортировать. а в конце подсунуть
рекродсет комбобокусу.

а если всего 4 значения, то проще
вручную вписать значения по возрастанию
...
Рейтинг: 0 / 0
04.11.2004, 13:24:02
    #32768642
Yanis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка Value list
Строки статичные, но самому следить за сортировкой ломает, поэтому и понадобилась функция...
...
Рейтинг: 0 / 0
04.11.2004, 13:26:31
    #32768646
ищ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка Value list
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
'открываем несвязанный набор записей
With rst
.Fields.Append "Name", adVarChar, 200
.Fields.Append "DateModified", adDate
.CursorLocation = adUseClient
.LockType = adLockOptimistic
.CursorType = adOpenKeyset
.Open

'здесь цикл по добавлению в рекрдсет
.AddNew
![Name] = aob.Name
!DateModified = aob.DateModified
.Update
'здесь цикл закрывается

'задаем сортировку в наборе записей
.Sort = [Name] & " ASC"
Set ПолеСоСписком.Recordset = rst
.Close
End With
...
Рейтинг: 0 / 0
04.11.2004, 13:42:48
    #32768704
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка Value list
YanisТогда получается довольно много таких таблиц, причем все небольшие - в районе 10 значений.


Таблицу можно использовать одну и на время, зачем их много.
Можно спихать сроковые значения в массив (Split), отсортировать и потом Join.
Есть и другие варианты
...
Рейтинг: 0 / 0
04.11.2004, 13:54:25
    #32768737
Yanis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка Value list
Serge GavrilovМожно спихать сроковые значения в массив (Split), отсортировать и потом Join.Спасибо, ты мне подсказал два ключевых слова :-)
Получилось вот что:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Function SortValueList(valueList As String) As String
    Dim Ar() As String
    Dim AnyChanges As Boolean
    Dim Swap As String
    Dim i
    
    Ar = Split(valueList, ";")

    Do
    AnyChanges = False
    For i =  0  To UBound(Ar()) -  1 
         If Ar(i) > Ar(i +  1 ) Then
              Swap = Ar(i)
              Ar(i) = Ar(i +  1 )
              Ar(i +  1 ) = Swap
              AnyChanges = True
         End If
    Next i
    Loop Until Not AnyChanges
     
    SortValueList = Join(Ar, ";")
End Function
Теперь буду счастлив услышать идеи по оптимизации.
Пузырьковую сортировку оптимизировать вроде не нужно, т.к., повторюсь, списки короткие
...
Рейтинг: 0 / 0
04.11.2004, 14:33:40
    #32768868
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка Value list
Yanis...
Теперь буду счастлив услышать идеи по оптимизации.
Пузырьковую сортировку оптимизировать вроде не нужно, т.к., повторюсь, списки короткие
Это не оптимизация, а просто уменьшение кода

Код: plaintext
1.
2.
3.
4.
5.
6.
Function SortValueList(valueList As String) As String
    Dim Ar() As String
    Ar = Split(valueList, ";")
    WizHook.SortStringArray Ar
    SortValueList = Join(Ar, ";")
End Function
...
Рейтинг: 0 / 0
04.11.2004, 14:40:18
    #32768895
Yanis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка Value list
Спасибо!

ЗЫ: А в Акцессе нет кнопки "сделать всё"? :-)
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Сортировка Value list / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]