Страница 5 из 6

Добавлено: Вс окт 28, 2012 19:06
iNorbert
LonerD писал(а): Вообще-то не десяток-другой, а учитывая все вариации с цифрами в rar-zip-7z-архивах - получится сотни две минимум.
Не создавай себе и окружающим проблемы. Две сотни необязательно полностью переписывать, хватит и *.r0?;*.r1? и т.д. Вуаля, две сотни сократились до двух десятков.

Добавлено: Вс окт 28, 2012 19:34
LonerD
iNorbert
Суть не столько в способе записи, а в ничем не обоснованном ограничении.

Регулярные выражения, как оказалось, - лишь финтифлюшка, которая позволяет сократить запись для глаз, но в реальности их длина или суть ещё более ограничена. Например, вот такой шаблон - это максимум что можно выжать:

Код: Выделить всё

(Type) Archives_SearchFor=\.(\d{3}|1|2|7-z|7-zip|7z|7z\.0\d\d|7zip|9m1|\?\?\$|
\?q\?|a|add|a1|a7e|aar|aba|abbu|ac(b|e|m|p|u)|ad(f|sm|z)|afa|aic|ai(n|o|r)|akp|
akt|alz|aop|ap(|k|ple|_)|ar(|c|ch00|f|h|j|k|n|t|t6|v)|as(4a|d|ec|h|_)|at(3|
pz|r|x)|avb|aw(|i|zip)|axr|aza|b1|b64|ba|bag|bai|bar|bba|bc|bcz|bee|bel|
bh|bhx|bi(f|n|o)|bke|bkf|blb|blz|bma|bn(d|hq|t)|bo(a|e|o|s|x|z)|bpa|bs(n|
q|z)|btc|btoa|bun|bz|bz2|bza|bzip2|bzp2|c|c0[0-9]|c10|ca(1|b|r|rb|t|z))$
(Type) Archives_SearchIn=
(Type) Archives_SearchText=
(Type) Archives_SearchFlags=0|000002001020||||||||22220|0000|
Если дописать сюда же ещё cb(7|r|t|v|z) - шаблон уже перестаёт работать.
(за пример взяты первые архиваторные расширения с сайта file-extensions.org)

Добавлено: Вс окт 28, 2012 19:44
MVV
Ограничение обосновать очень легко, зная специфику работы с INI-файлами. Функция GetPrivateProfileString принимает в параметрах буфер и его длину, записывает в буфер сколько можно и сообщает, сколько записала. Узнать заранее, сколько же реально понадобится, невозможно. Судя по ограничению, тотал предоставляет функции двухкилобайтный буфер. Я бы тоже не стал ожидать, что параметр в INI-файле будет длиннее...

Добавлено: Вс окт 28, 2012 19:47
Rodny
LonerD
Не вдаваясь в вопросы, кому все эти расширения нужны, скажу только, что регекспы можно оптимизировать. Тот же "cb(7|r|t|v|z)" можно сократить до "cb[7rtvz]", "ba|bag|bai|bar" до "ba[gir]?" и т.п.

Добавлено: Вс окт 28, 2012 20:02
iNorbert
LonerD писал(а):iNorbert
Суть не столько в способе записи, а в ничем не обоснованном ограничении.
Второй аскер. Нет предела совершенсвованию.

akp, bel, bba... Что за скопление букв?

Я прошелся на сайт, поглядел:

bba - BlueByte archive file.

Я загуглил BlueByte, затем википеднул первую ссылку.
Ubisoft Blue Byte (ранее Blue Byte GmbH) — известный немецкий разработчик компьютерных игр, основанный в 1988 году. Blue Byte, в основном, известен по играм двух серий — Battle Isle и The Settlers. Штаб-квартира студии находится в немецком городе Дюссельдорф. В январе 2001 года. студия была куплена известной французской компанией Ubisoft Entertainment и переименована.
В этом момент я вспомнил что-то смутно связанное с поселенцами ;), но тем не менее.

Вот мой шаблон «ARC»:
*.7z;*.ace;*.arc;*.arj;*.b64;*.balz;*.bhx;*.bz;*.bz2;*.bzip2;*.cab;
*.cpio;*.deb;*.dmg;*.fat;*.gz;*.gzip;*.hfs;*.hqx;*.lha;*.lzh;*.lzma;
*.mim;*.ntfs;*.nz;*.paq8o;*.pea;*.r0?;*.r1?;*.r2?;*.r3?;*.r4?;*.r5?;
*.r6?;*.r7?;*.r8?;*.r9?;*.rar;*.rpm;*.swm;*.tar;*.taz;*.tbz;*.tbz2;*.tgz;
*.tpz;*.tz;*.uu;*.uue;*.vhd;*.wim;*.xar;*.xpi;*.xxe;*.xz;*.z;*.zip;*.zipx;

В свое время я тупо передрал раздел ассоциаций 7-zip, WinRAR и WinZIP. Но зато я уверен что это все настоящие архивы, относительно распространенные. Так сказать доступные кроме как в научных лабораториях.

Добавлено: Вс окт 28, 2012 20:03
MVV
Вгляделся в пример шаблона выше. Получается, что BAR-файлы тотала - архивы? :roll: В очередной раз рекомендую ограничить шаблон типами, с которыми реально приходится иметь дело...

Ну и насчёт сокращения записей верно сказано. Заодно, думаю, можно (и нужно - это сократит запись и ускорит обработку, т.к. позволит пропускать большие куски выражения) сгруппировать расширения, показываю на примере начинающихся с b:

Код: Выделить всё

\.(...|b(1|64|a[gir]?|ba|cz?|e[el]|hx?|i[fno]|k[ef]|l[bz]|ma|n(d|hq|t)|o[aeosxz]|pa|s[nqz]|t(c|oa)|un|z2?|za|zi?p2)|...)
Это выражение в полтора раза короче указанного выше, хотя идентично. Напоминаю, спецзнак ? указывает, что элемент перед ним (символ, набор символов или выражение в скобках) может быть, а может и не быть. Т.е., zi?p2 соответствует как zip2, так и zp2.

Добавлено: Вс окт 28, 2012 20:20
Flasher
LonerD писал(а):а не заниматься сортировкой по типу "этот тип файлов добавляем, этот я не знаю, потому его удаляю".
Согласен с таким подходом. К тому же мы ведём речь об окрашивании в тот или иной оттенок для распознавания типов, т.е. совокупности расширений. Попадаются же разные файлы из сети и заниматься тем, чтобы выискивать всякий раз на неподсвеченном файле историю его расширения у меня лично нет ни времени, ни желания, я сразу хочу понимать, что перед глазами, это касается и поиска, и фильтра, и всего остального. И, кстати, именно благодаря такому подходу, я осведомлён о многих расширениях, о которых до определённого времени не имел представления, т.е. подход благостно и на память влияет.

Добавлено: Вс окт 28, 2012 20:31
Avada
iNorbert
Предупреждение за нарушение правил форума. Пост с флудом и матом удалён.

Flasher
Во-первых, благодаря такому подходу в список запросто попадут расширения, которые, скажем так, не всегда относятся с архивам (пример с BAR выше уже приводился).
Во-вторых, дело в общем-то хозяйское, но список масок в TC — рабочий инструмент, а не глобальный справочник по всем существующим расширениям.

Добавлено: Вс окт 28, 2012 20:59
Flasher
Avada
1. Обсуждалось с ask-rus, см. выше. Как это решается - другой вопрос.
2. Вот именно, что хозяйское. Рабочий инструмент как элемент запоминания, а вовсе не справки, как ты пишешь, вполне имеет место быть. Справочным материалом список масок никак не назовёшь, а вот оцветовка неизвестного расширения упрощает многие задачи, в частности - выбор соответствующего приложения для открытия, просмотра и/или редактирования.

Кстати, ты не мог бы там пробельчики в масках поставить, чтобы не растягивать страницу?

Добавлено: Вс окт 28, 2012 21:01
LonerD
Получается, что BAR-файлы тотала - архивы?
Нет, получается что существуют одинаковые расширения для разных типов файлов. Наверное, наиболее известный факт - расширение cue, которое с одной стороны применяется для образов дисков (bin+cue), а с другой - для аудиофайлов.
Для поиска/фильтрации - повторение расширений никак не конфликтуют. А для расцветки - можно (и нужно) решить данный конфликт с повторяющимися форматами путём задания порядка цветов в секции Colors.
iNorbert писал(а):Но зато я уверен что это все настоящие архивы, относительно распространенные.
Проблема изначально была в том, что мне известно куда большее количество архивов, потому не хотелось перебирать весь список в поиске и отсеивании известных.

Rodny, MVV
Спасибо за FAQ по регулярным выражениям.

MVV
Заодно, думаю, можно (и нужно - это сократит запись и ускорит обработку, т.к. позволит пропускать большие куски выражения) сгруппировать расширения
Это я уже тоже делал (правда, менее оптимальным образом).
И про это в данной теме уже задавал вопрос.
Чем больше сокращать таким вот образом запись - тем меньше размером получится рабочий фрагмент.
Например (абстрагируясь от необходимости) имеем 7 кб архивных форматов. Их можно разбить на 4 секции Archives1, Archives2, Archives3, Archives4 и каждой секции задать один и тот же цвет.
Предварительно оптимизируем регулярными выражениями этот 7килобайтный список. Получим около 2кб информации. Однако эти 2кб не получится впихнуть в одну секцию, их нужно разбить примерно на 7-8 (!!) секций, то есть даже больше, чем изначально. Значит, видимо, какие-то ещё есть ограничения на вложенность регулярных выражений или на количество спецсимволов или на что-то ещё.

Добавлено: Пт фев 08, 2013 17:12
ask-rus
Список поддерживаемых расширений некоторых программ вынимаю с помощью ABBYY Screenshot Reader. В ряде случаев получаю столбец расширений вида:
TXT
MP3
AVI
JPG
В случае, если он в нижнем регистре, преобразую в верхний с помощью AkelPad (Правка - Выделение - ВСЕ ПРОПИСНЫЕ или Ctrl+6).
Для сортировки понадобится плагин для AkelPad - Format, а для преобразования столбца в список вида:
*.TXT;*.MP3;*.AVI;*.JPG
как требует TC, необходимы плагины Scripts и ToolBar. Первый непосредственно осуществляет необходимую команду, а второй удобства ради создает пространство для кнопок. А кнопка следующая:

Код: Выделить всё

"Кнопка" Call("Scripts::Main", 1, "EvalCmd.js", `AkelPad.TextReplace(0, "^", "*.", 0x00280000, true); AkelPad.TextReplace(0, "\\n", ";", 0x00280000, true);`)
EvalCmd.js поставляется со Scripts. Плагины на одной странице.

Добавлено: Сб июл 13, 2013 16:31
Neptun79
Это всё конечно отлично, но быть может есть у кого готовые строки вида :

*.bmp; *.jpg; *.giff и т.п.
*.wave; *.mp3; *.ogg и т.п.

и другие разделённые по категориям, очищенные от мусора (и дубликатов) , которые можно сразу вставит в шаблон поиска.

Добавлено: Сб июл 13, 2013 16:43
Avada
All
Заново выкладываю разобранный по категориям список расширений (по прежней ссылке его скачать уже нельзя).

Neptun79
А совсем отлично будет, если попытаться хоть что-то сделать самостоятельно. Сюда заглянуть хотя бы. Не говоря уже про то, что представления о мусоре и дубликатах, как нетрудно увидеть выше, у всех разные.

Добавлено: Сб июл 13, 2013 18:42
Skif_off
Avada писал(а):Заново выкладываю разобранный по категориям список расширений
Странно с RAW-файлами:
Canon, Kodak, Pentax - Растровые изображения
Fuji, Minolta, Nikon, Sony - Рисунки, изображения
И тут религия? Придется перетряхивать :(

Добавлено: Сб июл 13, 2013 19:26
Avada
Skif_off
Я взял исходный архив, ровно ничего в нём не трогая. За содержание не отвечаю.