Заметил такую фичу с сортировкой. Если имеются файлы начинающиеся с цифр, то сортировка происходит неверно.
Например имеем файлы:
1.0.txt
1.1.txt
1.2.txt
1.10.txt
Результат сортировки:
1.0.txt
1.10.txt
1.1.txt
1.2.txt
При этом настройки сортировки в "Настройках" никак не влияют на результаты сортировки.
Проводник Windows и Total Commander дают сортировку в виде:
1.0.txt
1.1.txt
1.2.txt
1.10.txt
Фича сортировки с числами
Модератор: motyara
- Max Diesel
- Автор программы
- Сообщения: 3431
- Зарегистрирован: Пт окт 12, 2007 3:26 pm
- Контактная информация:
Re: Фича сортировки с числами
Если рассматривать 1.1 и 1.10 как числа, то они по законам математики равны и следовательно меньше 1.2. А если рассматривать как перечисление, т.е. список, то 1.10 больше 1.2. Для меня список файлов всегда являлся списком, поэтому 1.2 для меня меньше 1.10. Например, такой список документации:
1.1 Документ 1
1.2 Документ 2
1.3 Документ 3
....
1.10 Документ 10
1.11 Документ 11
...
1.20 Документ 20
Т.е. файлы представляют собой список документов.
Кроме того, по Вашей логике получается что 1.1 = 1.10 и 1.2=1.20 и т.д., хотя в списке это не так.
Я понимаю, что в отношении сортировки можно долго спорить и что софт бесплатный, но функцию такой сортировки считаю полезной. Возможно учесть указанный способ сортировки, как это сделано в большинстве Shell приложений?
1.1 Документ 1
1.2 Документ 2
1.3 Документ 3
....
1.10 Документ 10
1.11 Документ 11
...
1.20 Документ 20
Т.е. файлы представляют собой список документов.
Кроме того, по Вашей логике получается что 1.1 = 1.10 и 1.2=1.20 и т.д., хотя в списке это не так.
Я понимаю, что в отношении сортировки можно долго спорить и что софт бесплатный, но функцию такой сортировки считаю полезной. Возможно учесть указанный способ сортировки, как это сделано в большинстве Shell приложений?
- Max Diesel
- Автор программы
- Сообщения: 3431
- Зарегистрирован: Пт окт 12, 2007 3:26 pm
- Контактная информация:
В том-то и проблема в плане "двусмысленности логики" у подобных алгоритмов... программе сложновато однозначно безошибочно определить в какой ситуации "1.10" является "числом с дробной частью", а в какой "подпунктом". На случай, если вдруг у кого-нибудь появится желание опровергнуть это утверждение, приведу пример:
названия файлов, где цифра рассматривается как дробное число:
результаты измерений при температуре -72.25°C.xls
результаты измерений при температуре 17.01°C.xls
названия файлов, где цифра рассматривается как подпункт:
глава 3.1.doc
глава 3.3.doc
А потому при любом варианте реализации этой системы на мой взгляд вопрос будет по сути схожим с вопросом про зебру - "она черная в белую полоску или белая в черную". Можно конечно добавить третий вид сортировки, где дробные числа рассматривались бы как подпункты, но тогда вероятно будет слишком проблемно переключаться между этими тремя видами сортировки переходя из одного каталога в другой. Впрочем и в этом случае можно найти решение - сделать переключение не в настройках, а через кнопку с ниспадающим списком, но не будет ли тогда проще банально вместо точки использовать какой-нибудь другой символ? (имеется в виду "_" или "-")
названия файлов, где цифра рассматривается как дробное число:
результаты измерений при температуре -72.25°C.xls
результаты измерений при температуре 17.01°C.xls
названия файлов, где цифра рассматривается как подпункт:
глава 3.1.doc
глава 3.3.doc
А потому при любом варианте реализации этой системы на мой взгляд вопрос будет по сути схожим с вопросом про зебру - "она черная в белую полоску или белая в черную". Можно конечно добавить третий вид сортировки, где дробные числа рассматривались бы как подпункты, но тогда вероятно будет слишком проблемно переключаться между этими тремя видами сортировки переходя из одного каталога в другой. Впрочем и в этом случае можно найти решение - сделать переключение не в настройках, а через кнопку с ниспадающим списком, но не будет ли тогда проще банально вместо точки использовать какой-нибудь другой символ? (имеется в виду "_" или "-")
Re: Фича сортировки с числами
У проводника Windows есть определённый алгоритм сортировки, который всегда даёт верную,с моей точки зрения, последовательность. Хотелось бы видеть такую же возможность и в Вашей программе. Могу привести пример как сделана настройка, например в FreeCommander. При настройке способа сортировки (в нём называется "Упорядочить") есть 2 пункта:
"по Алфавиту" - сортировка аналогичная Вашей программе
"Естественный порядок (как в Проводнике)" - сортировка выполняется аналогично проводнику Windows.
Может устроить голосование по этому вопросу?
"по Алфавиту" - сортировка аналогичная Вашей программе
"Естественный порядок (как в Проводнике)" - сортировка выполняется аналогично проводнику Windows.
Может устроить голосование по этому вопросу?
Re: Фича сортировки с числами
Полностью согласен с sas800507.
Редко сталкивался с подобной проблемой, но когда сталкивался, это меня сильно раздражало.
Редко сталкивался с подобной проблемой, но когда сталкивался, это меня сильно раздражало.
- Max Diesel
- Автор программы
- Сообщения: 3431
- Зарегистрирован: Пт окт 12, 2007 3:26 pm
- Контактная информация:
Подозреваю что голосование выявит не необходимый алгоритм, а лишь мнение пользователей относительно этого алгоритма... а меня в данном вопросе больше интересует алгоритм. Для информации скажу, что до недавнего времени сортировка с учетом значений чисел производилась программой по алгоритму, который "изготовил" я, и алгоритм этот работал не так быстро как хотелось бы... в этой теме проблема необходимости более быстрого алгоритма была изложена и долгое время пребывала без решения... в итоге силами пользователя GLaz был разработан-таки достойный алгоритм, который обходил мою реализацию по скорости и точности. В данном случае мое нежелание производить модификацию этого алгоритма связано с тем фактом, что во-первых это резко снизит его скорость работы, а во-вторых добавит кучу новых проблем по "конкретным сортировкам". А потому я предпочел бы следовать принципу из несмешного анекдота, заканчивающегося словами "ничего не трогай, ничего не меняй"... Впрочем если есть желающие внести коррективы в представленный указанной темой код, я не буду против этих корректив (если они конечно окажутся действительно стоящими и при этом не сделают алгоритм значительно медленнее).