KDEDolphin: Natural sorting

При нумерации файлов числами в самом обычном формате возникает такая проблема, что они сортируются не в порядке возрастания номеров, а в лексикографическом порядке. Например, в лексикографическом порядке число 2 идёт после числа 11. Но в диспетчере файлов Dolphin эта проблема решена… правда, речь идёт о свежих версиях из ещё не выпущенного KDE 4.4.

Часто из-за распространённости сортировки в лексикографическом порядке файлы нумеруют числами с ведущими нулями, например:
0001-drm-radeon-radeon_device.c-move-a-dereference-below-.patch
0002-gpu-drm-radeon-radeon_irq.c-move-a-dereference-below.patch
0003-drm-radeon-kms-rs600-use-correct-mask-for-SW-interru.patch

Но в Dolphin можно выбрать специальный алгоритм сортировки «Natural sorting», который уважает числовую нумерацию. При сортировке в лексикографическом порядке последовательно сравниваются очередные символы строки до первого несовпадения, по несовпадающим символам определяется, какая строка должна идти раньше другой в отсортированной последовательности. При «Natural sorting» строка разбивается не на отдельные символы, а на числа и всё остальное, и числа сортируются как единое целое уже в числовом порядке. Правда, это относится только к целым числам, большим нуля.

Сравните:
                   
«Natural Sorting» в Dolphin включается в главном диалоговом окне настроек на странице «Главное».

Литература:
1. Natural Order String Comparison
2. Natural Order Numerical Sorting (для Mac)

Комментарии (7)

  • avatar
  • LRN
  • 08 января 2010, 12:12
  • #
  • 1
Натуральная сортировка — достаточно тривиальная проблема. Алгоритмы сортировки в большинстве тулкитов можно подставлять (функции сравнения) -> для реализации натуральной сортировки в файлменеджере достаточно добавить соответствующую функцию сортировки + добавить пункт меню (или опцию) для включения/выключения этой функции.
Почему для этого потребовалось ждать KDE 4.4 — неясно. Видимо всем такая сортировка была по барабану :)
Такой тип сортировки, конечно, нужен в «проводнике» ради удобства, но гораздо актуальнее проблема стоит во всяких просмотрщиках картинок, аудио- и видеоплеерах и т.п., которые из-за неправильной сортировки открывают файлы в неправильном порядке.
насколько мне известно, эти программи используют при открытии диалоговые окна DE. А они в свою очередь, например, KDialog имеют некоторую интеграцию с файловым менеджером.
Да, если включить опцию «Natural sorting of items» («Правильная сортировка по номерам») в Dolphin, такая сортировка будет использоваться также, к примеру в диспетчере файлов в Amarok. Однако в Gwenview это не работает.
лол, может быть ещё не допилили…
Как связан диалог открытия файлов (а тем более папки) с тем, в каком порядке их будет обрабатывать программа? К примеру обычно среднестатистический аудиоплеер сортирует треки по названию файла, если в тегах не указаны номера треков или вообще нет никакой информации. Вот тут и возникает проблема.
я думал, что речь идёт о числовой нумерации… лично у меня не так много треков, которые имеют в начале названия цифры, а если имеют, то не долго
про видеоплееры сказать не могу, смотрю по одному файлу
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.