Форум
Написать нам
  • Страница 1 из 1
  • 1
Модератор форума: as-master  
Сортировка списка другими средствами
as-masterДата: Суббота, 29 Сентября 2007, 12:15 | Сообщение # 1
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
Вот, стал делать-таки кулинарную книжку, и наткнулся на подводный камень, о котором и думать-то не думал. Оказалось, что сортировка списка командой ListBoxSortItems("SongList","NAME") в том случае, если строки достаточно длинные, происходит неправильно. Строки, начинающиеся ТЕМИ ЖЕ СЛОВАМИ, но короткие, сортируются правильно, а вот длинные - нет.

Таким образом, я не могу отсортировать по алфавиту списки рецептов. Это сводит на нет все мои усилия по созданию данной проги :-(

Отсюда возникает вопрос: как бы отсортировать строчки вручную, скриптом, без использования указанной выше команды. Понимаю, что вопрос архисложный, но всё же с тайной надеждой обращаюсь за помощью :)

Добавлено (29 Сентября 2007, 12:15)
---------------------------------------------
А ведь я нашел ИСТИННУЮ причину неправильной сортировки списка!!! smile
дело в том, что в каждой строке в качестве шестой переменной масива
используется переменная image$, которая имеет вид: 'C:\Cookery\image\имя картинки.jpg'

И вот эта-то составляющая строки и приводит к неправильной сортировке,
а вовсе не длина строк! Когда я заменил эту переменную обычным набором букв,
всё стало происходить правильно... Вот что делать? Эта переменная мне нужна
для загрузки картинок...


Да пребудет с вами ММВ!
 
as-masterДата: Воскресенье, 30 Сентября 2007, 20:29 | Сообщение # 2
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
Сам задал вопрос, сам и отвечу.

Если писать сценарий сортировки списка вручную, то такой сценарий
однозначно будет черезчур "лохматым".

А поскольку причину я нашел (см. пост выше), то поступил просто:
записываю в файл только имя_картинки.jpg, а путь спереди добавляется
уже в самой программе. И список стал сортироваться как часы.

Хотя нет - не как часы. В ММВ сортировка какая-то странная:
например, программа считает, что все прописные буквы всегда идут
впереди по алфавиту, чем строчные. Например, буква "Я" после
сортировки окажется впереди буквы "а".

Точно так же ММВ считает все символы, например кавычки, идущими
по алфавиту раньше букв. А хотелось бы, чтобы всякие кавычки
не учитывались вообще...


Да пребудет с вами ММВ!

Сообщение отредактировал as-master - Воскресенье, 30 Сентября 2007, 20:29
 
  • Страница 1 из 1
  • 1
Поиск: