Victor_VG
Tracker Mod | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору citPiks Alexyz21 Ещё проще используем + небольшой рефакторинг и поддержка UTF-32 (вот их-то сразу и не распознаешь, а после читай на экране) Код: local function process(f) local res,utf8,utf16le,utf16be,utf32le,utf32be = 0,'\239\187\191','\255\254','\254\255','\255\254\0\0','\0\0\254\255' local h=io.open(f,"rb") if h then local s=h:read(8) or '' h:close(); if s==utf32le then res=5 elseif s==utf32be then res=4 end -- s=h:read(3) -- уберём лишнее повторное чтение с диска т.к. хватит subst() s=string.sub(s,1,3); if s==utf8 then res=3 else s=string.sub(s,1,2) if s==utf16le then res=2 elseif s==utf16be then res=1 end end; end return res end Macro { description="BOM Files test"; name="BOM"; area="Shell"; key=""; action=function() local Items=panel.GetPanelInfo(nil,1).ItemsNumber for Item=1,Items do local GPItem=panel.GetPanelItem(nil,1,Item) if GPItem.FileAttributes:find("d") or process(GPItem.FileName)==0 then panel.SetSelection(nil,1,Item,false) else panel.SetSelection(nil,1,Item,true) end end panel.RedrawPanel(nil,1) end } | Использование: F9 -> Раскраска файлов и группы сортировки -> Наименее приоритетная группа раскраски добавляем группу BOM, ставим ей опциональный символ пометки, например ">" и перед первым символом имени файла видим пометку, а сортировка как обычно, Shift-F11 и выбранный режим. Например: тестовый набор (там же и сам скрипт) test.7z. Удачных экспериментов!
---------- Жив курилка! (Р. Ролан, "Кола Брюньон") Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti |
| Всего записей: 33992 | Зарегистр. 31-07-2002 | Отправлено: 23:11 08-08-2019 | Исправлено: Victor_VG, 23:35 08-08-2019 |
|