Page 1 of 2
сортировка по "имени"
Posted: Tue 25 Dec, 2018 08:14
by lvm
Включена сортировка по имени. Я понимаю стоящую за этим логику: имя - это все до последней точки, но все равно выглядит неправильно. Кмк если бы именем считалось все до первой точки, было бы лучше.
╔══════════════════════ C:\Temp\1 ═════════╤═══════════╗
║.. │ < Up >│25-12 10:08║
║user.action │ 111,067│25-12 09:16║
║user.filter │ 7,005│25-12 09:16║
║user.action.bak │ 110,899│24-12 08:30║
║user.filter.bak │ 7,439│24-12 08:30║
║ │ │ ║
║ │ │ ║
сортировка по "имени"
Posted: Tue 25 Dec, 2018 09:34
by Shmuel
Новогодний подарок.
Распаковать, положить рядом с макрофайлами, перезагрузить Фар.
Вызывается через CtrlShiftF3, индикатор юЮ (и то, и другое можно перенастроить).
--
--
сортировка по "имени"
Posted: Tue 25 Dec, 2018 12:04
by lvm
Спасибо. Только
31: local name1, name2 = getName(p1.FileName), getName(p2.FileName)
и одной вещи я не понял: NORM_IGNORECASE убрал, но оно почему-то все равно сортирует case-insensitive.
сортировка по "имени"
Posted: Tue 25 Dec, 2018 12:10
by Shmuel
Так работает майкрософтовская функция CompareString. У неё много разных флагов, найдите в Интернете, поиграйтесь, может что и получится.
сортировка по "имени"
Posted: Tue 25 Dec, 2018 12:17
by lvm
Так я нашел: ignorecase в разных вариантах есть, а чтобы не игнорить - нет. Потому и спрашиваю.
https://docs.microsoft.com/en-gb/window ... restringex
сортировка по "имени"
Posted: Tue 25 Dec, 2018 12:52
by Shmuel
Так спрашивайте у Майкрософта.
Можете использовать wcscmp (с отдельной обработкой ё и Ё).
сортировка по "имени"
Posted: Tue 25 Dec, 2018 13:01
by DrKnS
сортировка по "имени"
Posted: Tue 25 Dec, 2018 16:01
by Shmuel
DrKnS, я подозреваю, что под "case sensitive" человек понимает так, что Z должно быть меньше b.
FSF.CompareStrings в каком-то из режимов тоже так понимает?
сортировка по "имени"
Posted: Tue 25 Dec, 2018 17:34
by DrKnS
Shmuel, да.
сортировка по "имени"
Posted: Tue 25 Dec, 2018 17:41
by Shmuel
Уж больно лаконично. Назовите настройки, чтобы можно было попробовать. (Естественно, имеется в виду только прямая сортировка).
P.S. Уже нашёл, Ordinal + case insensitive.
сортировка по "имени"
Posted: Tue 25 Dec, 2018 18:00
by Shmuel
сортировка по "имени"
Posted: Tue 25 Dec, 2018 19:33
by DrKnS
сортировка по "имени"
Posted: Tue 25 Dec, 2018 20:11
by Shmuel
OK, мой баг (эта функция, в отличие от CompareStringW, не обрабатывает отрицательные значения как особый случай).
Теперь остаётся понять:
1) почему файлы (даже без расширения) сортируются иначе, чем в Фаре
2) почему переключение между прямой и инверсной сортировкой ничего не меняет
сортировка по "имени"
Posted: Tue 25 Dec, 2018 20:24
by Shmuel
Извиняюсь, ещё один баг (копипаста).
Но поведение прежнее.
сортировка по "имени"
Posted: Tue 25 Dec, 2018 21:12
by DrKnS
CompareStrings - интерфейс к базовой функции сортировки строк. На неё влияют опции в системных настройках. Отдельные компоненты (например, файловая панель) могут реализовывать расширенные варианты сортировки на её базе.