Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

[wdx] WinScript Advanced Content Plugin (x86\x64) (new)
Goto page Previous  1, 2, 3 ... , 10, 11, 12  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
ZZZAlexZZZ



Joined: 08 Mar 2014
Posts: 46

Post (Separately) Posted: Fri Sep 01, 2017 18:28    Post subject: Reply with quote

Flasher
Цель - лучшее визуальное представление документов посредством разделения имени вида {ИМЯ Номер Договор dd.MM.YYYY Сумма ццццц-цц счет номер} на составляющие.
Документов много, требуется сортировка по работе по полям. Если в папке лежат другие документы - в поле попадает вывод ошибки
P.S Понятно что есть плагин Expander2, но он используется для другого - другой разделитель. Да и академический интерес - в дальнейшем м.б. потребуется поколдовать для представления или поиска через регулярки с именами (на перспективу) - здесь скрипт погибче чем плагин.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 11895
Location: Москва

Post (Separately) Posted: Fri Sep 01, 2017 18:34    Post subject: Reply with quote

ZZZAlexZZZ
Цель — это хорошо, но меня интересовала полноценная задача с примерами. Сейчас я вижу 8 составляющих, а в скрипте их 14.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
ZZZAlexZZZ



Joined: 08 Mar 2014
Posts: 46

Post (Separately) Posted: Fri Sep 01, 2017 18:46    Post subject: Reply with quote

Flasher
8 - это сейчас, 14 - на перспективу
например (в реальности их сотни) 3 файла с именами:

17_08_15_План Освоения Ext
ПП 25 04.05.2017 КРК 52!ПП Спецификация 25 4578-23 СЧ 234
ПП 256 28.04.2017 ПРИ 35!МИ Спецификация 545 223200-25 СЧ 4878

Выводится в колонки 1-8 (соответственно слова разделенные по пробелу)

Несоответствие типа: 'FormatCurrency'
ПП 25 4 мая 2017 г. КРК 52!ПП Спецификация 25 4 578,23 ₽
ПП 256 28 апреля 2017 г. ПРИ 35!МИ Спецификация 545 223 200,25 ₽

Скрипт в текущем виде спотыкается на неизвестном ему формате - хотелось бы чтобы или ничего не выдавал, или знакомые ему числа, даты, суммы (сейчас сумма представляется как ЦИФРА(рубл) - ЦИФРА(коп))
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 11895
Location: Москва

Post (Separately) Posted: Fri Sep 01, 2017 19:14    Post subject: Reply with quote

ZZZAlexZZZ
Увы, но на полноценную задачу это не тянет. Даны условно исходные данные без обозначений искомых составляющих в неясной последовательности. Понять по такой информации, как отличать друг от друга те или иные составляющие, весьма затруднительно.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
ZZZAlexZZZ



Joined: 08 Mar 2014
Posts: 46

Post (Separately) Posted: Fri Sep 01, 2017 19:20    Post subject: Reply with quote

Flasher
Хорошо, сузим задачу.
Как в этом куске кода

Code:

If Matches.Count > 0 Then
      ArrPN(i) = FormatCurrency(objRegExp.Replace(ArrPN(i), "$1") & ","& objRegExp.Replace(ArrPN(i), "$3"), -1, -1)
   End If


исключить данные, которые не принимает функция FormatCurrency?
Паттерн "(\d+)(\D)(\d\d)" не может не быть числом - первое и третье вхождение я так понимаю числа.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 11895
Location: Москва

Post (Separately) Posted: Fri Sep 01, 2017 19:49    Post subject: Reply with quote

ZZZAlexZZZ
Лучше не сужать. Я бы этот скрипт упростил. Нужен конкретный вывод, последовательность и вероятность наличия/отсутствия тех или иных символов/составляющих. Без этого и на последний вопрос ответить проблематично.
И вообще по регуляркам есть смысл сюда писать.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
ZZZAlexZZZ



Joined: 08 Mar 2014
Posts: 46

Post (Separately) Posted: Mon Sep 04, 2017 12:21    Post subject: Reply with quote

Flasher
Верно подмечено, дело было в регулярке - д.б. ^(\d+)(\D)(\d\d)$
Теперь дата выглядит как дата, число с разделением групп разрядов, денежный формат как денежный формат.
Ссылка
Спасибо за участие
Back to top
View user's profile Send private message
yozhik



Joined: 04 May 2014
Posts: 56

Post (Separately) Posted: Fri Sep 08, 2017 20:07    Post subject: Reply with quote

Flasher
Попробовал в Вашем скрипте MSOfficeProps.vbs заменить некоторые Properties массиве. Посыпались ошибки. Пытаясь выяснить в чём дело сократил скрипт до двух строчек:
Code:
Set File = CreateObject("Shell.Application").NameSpace(0).ParseName(FileName)
Execute "Content=File.ExtendedProperty(""System.ApplicationName"")"

Именно этот вариант отрабатывает исправно, WinScriptsAdv выводит информацию. Но если поменять System.ApplicationName на System.Author или System.Category, плагин крашится:
Code:
Crash in plugin WinScriptsAdv.wdx:
External exception EEDFADE

WDX Guide тоже выдаёт ошибку:
Code:
WDX Guide
Exception in ContentGetValue

Некоторые свойства принимает и отображает, некоторые – ошибка. В чём может быть причина?
Свойства беру отсюда. Опыты произвожу на Windows 8.1 x86.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 11895
Location: Москва

Post (Separately) Posted: Fri Sep 08, 2017 20:25    Post subject: Reply with quote

yozhik
1. Почему shelldetails не пользуетесь?
2. В указанный скрипт писать стоит в конец массива.
Quote:
... in Array(..., "System.Language", "System.блабла", "System.блабла")

3. Если нужна частичная замена, то лучше сразу написать нужный список под спойлером.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
yozhik



Joined: 04 May 2014
Posts: 56

Post (Separately) Posted: Fri Sep 08, 2017 20:42    Post subject: Reply with quote

Flasher
1. Буду теперь. Раньше не знал где брать дополнительные Properties, но вчера узнал, пока разбирался со скриптом. А ещё в скрипт можно доп. функцию дописать, по примеру Вашей FTime() в MSOfficeProps.vbs, которая видоизменяет полученное значение – в ShellDetails нет такой возможности.
2. Вписал:
Code:
... in Array(..., "System.Language", "System.Author")

Получил ошибку. А если вместо System.Author вписать System.Company, то нет ошибки. Не могу понять почему из одной и той же группы (Windows Properties Core) одни свойства обрабатываются, другие нет...
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 11895
Location: Москва

Post (Separately) Posted: Fri Sep 08, 2017 20:56    Post subject: Reply with quote

yozhik
Author - это список авторов (массив), он не может обрабатываться как строка. Company в System. не нуждается, да и есть в shelldetails (см. мой тамошний скрин).
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
yozhik



Joined: 04 May 2014
Posts: 56

Post (Separately) Posted: Fri Sep 08, 2017 21:22    Post subject: Reply with quote

Flasher wrote:
Author - это авторы (массив), он не может обрабатываться как строка.

Вот, спасибо от души. Теперь понятно Smile Интересно было бы разобраться, как в этом случае массив обрабатывать, но времени нет, к сожалению.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 11895
Location: Москва

Post (Separately) Posted: Fri Sep 08, 2017 22:22    Post subject: Reply with quote

yozhik
Я раньше пробовал работать как с массивами, не выходило. На VB ещё можно, на VBS-е вряд ли. Проще взять shelldetails.
Если нужно отсеивать, то проще смотреть по IsArray(). Также можно проверять тип по Vartype(). 8192(массив)+8(строковый)/17(байтовый) и т. д.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
yozhik



Joined: 04 May 2014
Posts: 56

Post (Separately) Posted: Sat Sep 09, 2017 11:22    Post subject: Reply with quote

Flasher
Спасибо большое.
Ещё скажите, пожалуйста, в начале скрипта у Вас:
Code:
Reg.Pattern = "^(do[ct][xm]?|xl[st][xm]?|p[op]t[xm]?|vsd)$"

Это, как я понял, Вы расширение проверяете у файла. Но у плагина в options.ini для этой, кажется, цели есть параметр extensions=. Что, плагин фильтрует некачественно? Или другая цель? Вопрос без подвоха, действительно интересно.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 11895
Location: Москва

Post (Separately) Posted: Sat Sep 09, 2017 14:22    Post subject: Reply with quote

yozhik
WACP фильтрует, SCP нет, а т. к. он в отличии от WACP не берёт данные из кэша, то есть смысл в нём использовать.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3 ... , 10, 11, 12  Next
Page 11 of 12

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group