Очень обрадовался, увидев шаблоны для групп сортировки, но, к сожалению, там имеется несколько недоработок:
1. Если имя файла начинается с цифры, то номер группы (который превращается в цифру) соединяясь с именем файла образует некоторое число, которое при использовании сортировки с учётом числовых значений помещается не туда, куда надо... Проверил на файлах, созданных с помощью
Код: Выделить всё
#include <cstdio>
int main(void)
{
char ch, s[32];
unsigned q;
for(ch='A'; ch<='J'; ++ch)
{
printf("SGexts%u=::*.%c:\n", ch-'A', ch);
sprintf(s, "Temp\\QQQ (%u).%c", ch-'A', ch);
fclose(fopen(s,"w"));
for(q=0; q<11; ++q)
{
sprintf(s, "Temp\\%uQQQ (%u%u).%c", q, ch-'A', q, ch);
fclose(fopen(s,"w"));
}
}
getchar();
return 0;
}
Думаю, самым простым вариантом будет вместо цифр использовать буквы латинского алфавита - тогда они не будут сливаться в числа с цифрами имени, количество необходимых символов не изменится, а количество возможных групп возрастёт c 10 до 25 (26-я - для остальных файлов).
2. При попытке добавления чего-либо в группу с помощью диалога настроек сразу ставится "*.", что подразумевает расширение. У меня так и не получилось написать там что-то нормальное (правда, я и не особо старался - менял руками в ini-файле)...
3. Файлы без расширения (в т. ч. ".name") не попадают ни в одну группу (даже
::*:)... Случайно какой-нибудь проверки на существование расширения от предыдущего варианта не осталось?
4. Вероятно, файлы с именем ".name" не должны попадать в группу сортировки для такого расширения, поэтому предлагаю заменить дефаултный шаблон для расширения с "*.ext" на "*?.ext". Именно "*?", а не "?*", т. к. алгоритм оптимизирован для комбинации ":*".
5. При установке (поверх 782) в uncom.ini получились строки вида
т. е. стоят ';' вместо ':'...