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

#196:  Author: AvadaLocation: Россия, Саратов PostPosted: Thu Jul 09, 2020 13:05
    —
dzigloTC
Замечание за нарушение правил форума. Ровно никакой повышенной важности ваше выделение полужирным шрифтом не имело. Сообщение приведено к приемлемому состоянию. Кроме того, вы злоупотребляете ненужным цитированием.

#197:  Author: FlasherLocation: Москва PostPosted: Thu Jul 09, 2020 23:54
    —
dzigloTC wrote:
Вы не могли бы подробнее рассказать, как это сделать?
Для начала установить плагин по общим правилам (1, 2, 3).
Потом закинуть этот (с лёгкой правкой предыдущего) скрипт в ...\Plugins\wdx\WinScriptsAdv\Scripts\, выполнив предписания из шапки ¹:
 TextSearch.au3

 Отредактировать options.ini из корневой папки плагина по схожему принципу:
Перезапустить ТС и искать на вкладке Плагины по принципу:
winscriptsadv | Заголовок 1 | Рег. выраж. | ^[1-9]

#198:  Author: Segmentum PostPosted: Mon Nov 30, 2020 00:17
    —
Можно ли использовать в скриптах для WinScript Advanced данные из других wdx плагинов Total Commander?

#199:  Author: Skif_off PostPosted: Sun Dec 06, 2020 08:47
    —
Segmentum
Можно, тут писал, как.

#200:  Author: Zmy PostPosted: Mon Dec 07, 2020 18:05
    —
Skif_off, вы не поняли тонкий троллинг.

Для чего такое делать?

Не легче ли создать свой собственный набор колонок?
С любыми полями, из любых плагинов.

С помощью стандартных средств такого, как хочет TS, сделать невозможно.
Чтобы такое делать, нужно понимать, как Гислер подгружает плагины.

Для чего нужны посредники?

Такое можно сделать, но возникает вопрос:

Зачем создавать сложное, если можно сделать лёгкое?

#201:  Author: Skif_off PostPosted: Mon Dec 07, 2020 19:40
    —
Zmy wrote:
Не легче ли создать свой собственный набор колонок?
С любыми полями, из любых плагинов.

Суть в том, что данные поля(ей) необходимо как-то использовать и выдать полученный результат. Либо существующие плагины не предоставляют необходимого.
Zmy wrote:
С помощью стандартных средств такого, как хочет TS, сделать невозможно.
Чтобы такое делать, нужно понимать, как Гислер подгружает плагины.

Плагин - это просто dll'ка с расширением w?x, в ряде случаев её можно запросто загрузить и вызывать её функции самыми что ни на есть стандартными средствами (точно так же их и Гислер подгружает).

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

#202:  Author: BatyaLocation: Москва, Россия PostPosted: Wed Feb 24, 2021 18:46
    —
Из другой ветки:
Monarch-LFV wrote:
Возникла необходимость вытаскивать содержимое определеной ячейки в файле Excel (например "Лист1!C12")

Эх, давно не брал я шашки в руки Smile
Code:
'=================================================
' Script for WinScriptAdv content plugin

' Возвращает значение ячейки Excel
'=================================================

'========== Изменяемые параметры =================
Const Addr = "Лист1!C12"  ' Адрес ячейки
'=================================================

content = Result(filename, Addr)

Function GetCellValue(pXl, pFile, pAddr)
  pXl.Visible = False
  pXl.DisplayAlerts = False
  Call pXl.Workbooks.Open(pFile, , True)
  GetCellValue = pXL.Range(pAddr)
End Function

Function Result(pFile, byVal pAddr)
  Dim objXL
  Set objXL = CreateObject("Excel.Application")
  On Error Resume Next
  Result = GetCellValue(objXL, pFile, pAddr)
  On Error Goto 0
  objXL.Quit()
  Set objXL = Nothing
End Function

#203:  Author: Monarch-LFV PostPosted: Thu Feb 25, 2021 17:13
    —
Batya
Спасибо, очень круто получилось, несмотря на то, что уже сам реализовал на VBA в Экселе. В VBS сам не силен, несмотря на то, что вроде близкие языки.
Мне уже особо не нужно, но ради интереса можно развить тему, просто номер строки не обязательно может быть 12, как в примере. В качестве примера, представьте себе сметы, где разное количество строк, где-то 11, где-то 100, где-то 123... Но в конце, например в столбце "B" всегда имеется фраза "Итого по смете:", так вот например нужно получить значение в этой строке в столбце "C".

#204:  Author: BatyaLocation: Москва, Россия PostPosted: Thu Feb 25, 2021 19:28
    —
Monarch-LFV
Без проблем:
Code:
'=================================================
' Script for WinScriptAdv content plugin

' Возвращает значение последней ячейки Excel в указанном столбце
'=================================================

'========== Изменяемые параметры =================
Const Addr = "Лист1!C"  ' Адрес ячейки без строки
'=================================================

content = Result(filename, Addr)

Function GetCellValue(pXl, pFile, pAddr)
  Dim lRow, lSh
  pXl.Visible = False
  pXl.DisplayAlerts = False
  Call pXl.Workbooks.Open(pFile, , True)
  If InStr(pAddr, "!") > 0 Then
    Set lSh = pXl.Worksheets(Left(pAddr, InStr(pAddr, "!") - 1))
  Else
    Set lSh = pXl.ActiveSheet
  End If
  lRow = lSh.UsedRange.Find("*", , , , , 2).Row
  GetCellValue = lSh.Range(pAddr & CStr(lRow))
  Set lSh = Nothing
End Function

Function Result(pFile, byVal pAddr)
  Dim objXL
  Set objXL = CreateObject("Excel.Application")
  On Error Resume Next
  Result = GetCellValue(objXL, pFile, pAddr)
  On Error Goto 0
  objXL.Quit()
  Set objXL = Nothing
End Function

#205:  Author: Mailk PostPosted: Fri Feb 26, 2021 03:38
    —
А у меня бухгалтерские pdf счета.
Нужно вывести в столбец данны по ним .
Реально такое?

#206:  Author: Monarch-LFV PostPosted: Fri Feb 26, 2021 08:27
    —
Batya
Немного не то. Здесь вы ищете просто последнюю строку, а нужно номер строки, в которой в столбце "B" фраза "Итого по смете:". Она может быть далеко не последней (после нее могут быть поля для подписи например).
Для понимания, если написать формулой в экселе, то получилось бы следующее:
Code:
=ВПР("Итого по смете:";B:C;2;ЛОЖЬ)


Mailk
Уже ведь обсуждали в ветке http://forum.wincmd.ru/viewtopic.php?t=15967&postdays=0&postorder=asc&&start=30
Или вышлете пример, я посмотрю.

#207:  Author: Monarch-LFV PostPosted: Sat Feb 27, 2021 06:02
    —
Batya
На основе вашего кода написал нужный мне код:
Code:
''=================================================
' Script for WinScriptAdv content plugin

' Возвращает значение найденной ячейки Excel в указанном столбце
' по принципу =ВПР("Итого по смете:";B:C;2;ЛОЖЬ)
'=================================================

'========== Изменяемые параметры =================
Const Addr = "Лист1!C"  ' Адрес ячейки без строки
Const columnConst = "B:B"  ' В каких столбцах должно быть найдено постоянное значение
Const ValueConst = "Итого по смете:"  ' Само постоянное значение
'=================================================

content = Result(filename, Addr)

Function GetCellValue(pXl, pFile, pAddr)
  Dim lRow, lSh
  pXl.Visible = False
  pXl.DisplayAlerts = False
  Call pXl.Workbooks.Open(pFile, , True)
  If InStr(pAddr, "!") > 0 Then
    Set lSh = pXl.Worksheets(Left(pAddr, InStr(pAddr, "!") - 1))
  Else
    Set lSh = pXl.ActiveSheet
  End If
  lRow = lSh.Range(columnConst).Find(ValueConst, , , , , 1).Row
  GetCellValue = lSh.Range(Addr & lRow)
  Set lSh = Nothing
End Function

Function Result(pFile, byVal pAddr)
  Dim objXL
  Set objXL = CreateObject("Excel.Application")
  On Error Resume Next
  Result = GetCellValue(objXL, pFile, pAddr)
  On Error Goto 0
  objXL.Quit()
  Set objXL = Nothing
End Function

Спасибо за наводку!

#208:  Author: Monarch-LFV PostPosted: Sun Feb 28, 2021 05:48
    —
Немного разобравшись, написал еще один скрипт для плагина, может кому-нибудь пригодится (похож на работу плагина Expander2):
Code:
' Script for WinScriptAdv content plugin
'
' Разделяет имена папок и файлов по заданному разделителю

'========== Изменяемые параметры =================
Const Separator = " - "
'=================================================

Dim fs, f, fn
on error resume next
Set fs = CreateObject("Scripting.FileSystemObject")
Set f  = fs.GetFolder(filename)
fn = f.name ' Имя папки
fn = fs.GetBaseName(filename) ' Имя файла

content = fn ' Полное имя файла
content1 = split(fn, Separator)(0) ' Часть 1
content2 = split(fn, Separator)(1) ' Часть 2
content3 = split(fn, Separator)(2) ' Часть 3

#209:  Author: Orion9 PostPosted: Tue Feb 13, 2024 12:55
    —
Плагин поддерживает Unicode?

Пытаюсь запустить в нем AutoHotkey второй версии.

Вижу, что он создает файл во временном каталоге WinScriptAdvFile_.ahk в формате ANSI, что приводит к утере уникодных имен файлов в переменной filename и неработаспособности файловых функций.

Как решить проблему?

#210:  Author: Monarch-LFV PostPosted: Wed Mar 13, 2024 13:52
    —
Заметил, что плагин на разных windows ведет себя по разному. В options.ini оставил одну запись:
Code:
[Script]
ActiveScripts=Test

[Test]
Script=Test.vbs
content=Test
extensions=*
FoldersPaths=0

В файле Test.vbs просто:
Code:
content = 1

При добавлении колонки поведение следующее:
1. Win7x64: TCх32 - при первом (!) обращении в диалоговом окне выпадает ошибка:
Code:
Crash in plugin WinscriptsADV.wdx:
External exception EEDFADE

После добавления колонки, не смотря на ошибку все работает как надо и повторно такая ошибка не выдается.

2. Win7x64: TCх64 - тотал сразу падает без каких-либо сообщений.
Текст дампа прилагаю:
 Дамп


3. Win10x64: TCх32 и ТСх64 - никаких ошибок нет.

Может кто-нибудь подтвердить/опровергнуть такое поведение? И как с ним бороться?



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


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

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

Powered by phpBB © 2001, 2005 phpBB Group