[wdx] WinScript Advanced Content Plugin (x86\x64) (new)
Select messages from
# through # FAQ
[/[Print]\]
Goto page Previous  1, 2, 3 ... 10, 11, 12, 13, 14, 15  Next  :| |:
Total Commander -> Плагины Total Commander

#151:  Author: ZZZAlexZZZ PostPosted: Fri Sep 01, 2017 18:28
    —
Flasher
Цель - лучшее визуальное представление документов посредством разделения имени вида {ИМЯ Номер Договор dd.MM.YYYY Сумма ццццц-цц счет номер} на составляющие.
Документов много, требуется сортировка по работе по полям. Если в папке лежат другие документы - в поле попадает вывод ошибки
P.S Понятно что есть плагин Expander2, но он используется для другого - другой разделитель. Да и академический интерес - в дальнейшем м.б. потребуется поколдовать для представления или поиска через регулярки с именами (на перспективу) - здесь скрипт погибче чем плагин.

#152:  Author: FlasherLocation: Москва PostPosted: Fri Sep 01, 2017 18:34
    —
ZZZAlexZZZ
Цель — это хорошо, но меня интересовала полноценная задача с примерами. Сейчас я вижу 8 составляющих, а в скрипте их 14.

#153:  Author: ZZZAlexZZZ PostPosted: Fri Sep 01, 2017 18:46
    —
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 ₽

Скрипт в текущем виде спотыкается на неизвестном ему формате - хотелось бы чтобы или ничего не выдавал, или знакомые ему числа, даты, суммы (сейчас сумма представляется как ЦИФРА(рубл) - ЦИФРА(коп))

#154:  Author: FlasherLocation: Москва PostPosted: Fri Sep 01, 2017 19:14
    —
ZZZAlexZZZ
Увы, но на полноценную задачу это не тянет. Даны условно исходные данные без обозначений искомых составляющих в неясной последовательности. Понять по такой информации, как отличать друг от друга те или иные составляющие, весьма затруднительно.

#155:  Author: ZZZAlexZZZ PostPosted: Fri Sep 01, 2017 19:20
    —
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)" не может не быть числом - первое и третье вхождение я так понимаю числа.

#156:  Author: FlasherLocation: Москва PostPosted: Fri Sep 01, 2017 19:49
    —
ZZZAlexZZZ
Лучше не сужать. Я бы этот скрипт упростил. Нужен конкретный вывод, последовательность и вероятность наличия/отсутствия тех или иных символов/составляющих. Без этого и на последний вопрос ответить проблематично.
И вообще по регуляркам есть смысл сюда писать.

#157:  Author: ZZZAlexZZZ PostPosted: Mon Sep 04, 2017 12:21
    —
Flasher
Верно подмечено, дело было в регулярке - д.б. ^(\d+)(\D)(\d\d)$
Теперь дата выглядит как дата, число с разделением групп разрядов, денежный формат как денежный формат.
Ссылка
Спасибо за участие

#158:  Author: yozhik PostPosted: Fri Sep 08, 2017 20:07
    —
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.

#159:  Author: FlasherLocation: Москва PostPosted: Fri Sep 08, 2017 20:25
    —
yozhik
1. Почему shelldetails не пользуетесь?
2. В указанный скрипт писать стоит в конец массива.
Quote:
... in Array(..., "System.Language", "System.блабла", "System.блабла")

3. Если нужна частичная замена, то лучше сразу написать нужный список под спойлером.

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

Получил ошибку. А если вместо System.Author вписать System.Company, то нет ошибки. Не могу понять почему из одной и той же группы (Windows Properties Core) одни свойства обрабатываются, другие нет...

#161:  Author: FlasherLocation: Москва PostPosted: Fri Sep 08, 2017 20:56
    —
yozhik
Author - это список авторов (массив), он не может обрабатываться как строка. Company в System. не нуждается, да и есть в shelldetails (см. мой тамошний скрин).

#162:  Author: yozhik PostPosted: Fri Sep 08, 2017 21:22
    —
Flasher wrote:
Author - это авторы (массив), он не может обрабатываться как строка.

Вот, спасибо от души. Теперь понятно Smile Интересно было бы разобраться, как в этом случае массив обрабатывать, но времени нет, к сожалению.

#163:  Author: FlasherLocation: Москва PostPosted: Fri Sep 08, 2017 22:22
    —
yozhik
Я раньше пробовал работать как с массивами, не выходило. На VB ещё можно, на VBS-е вряд ли. Проще взять shelldetails.
Если нужно отсеивать, то проще смотреть по IsArray(). Также можно проверять тип по Vartype(). 8192(массив)+8(строковый)/17(байтовый) и т. д.

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

Это, как я понял, Вы расширение проверяете у файла. Но у плагина в options.ini для этой, кажется, цели есть параметр extensions=. Что, плагин фильтрует некачественно? Или другая цель? Вопрос без подвоха, действительно интересно.

#165:  Author: FlasherLocation: Москва PostPosted: Sat Sep 09, 2017 14:22
    —
yozhik
WACP фильтрует, SCP нет, а т. к. он в отличии от WACP не берёт данные из кэша, то есть смысл в нём использовать.



Total Commander -> Плагины Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page Previous  1, 2, 3 ... 10, 11, 12, 13, 14, 15  Next  :| |:
Page 11 of 15

Powered by phpBB © 2001, 2005 phpBB Group