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 ... 12, 13, 14
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Avada



Joined: 01 Aug 2008
Posts: 9895
Location: Россия, Саратов

Post (Separately) Posted: Thu Jul 09, 2020 13:05    Post subject: Reply with quote

dzigloTC
Замечание за нарушение правил форума. Ровно никакой повышенной важности ваше выделение полужирным шрифтом не имело. Сообщение приведено к приемлемому состоянию. Кроме того, вы злоупотребляете ненужным цитированием.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Thu Jul 09, 2020 23:54    Post subject: Reply with quote

dzigloTC wrote:
Вы не могли бы подробнее рассказать, как это сделать?
Для начала установить плагин по общим правилам (1, 2, 3).
Потом закинуть этот (с лёгкой правкой предыдущего) скрипт в ...\Plugins\wdx\WinScriptsAdv\Scripts\, выполнив предписания из шапки ¹:
 TextSearch.au3

 Отредактировать options.ini из корневой папки плагина по схожему принципу:
Перезапустить ТС и искать на вкладке Плагины по принципу:
winscriptsadv | Заголовок 1 | Рег. выраж. | ^[1-9]
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Segmentum



Joined: 13 Oct 2020
Posts: 21

Post (Separately) Posted: Mon Nov 30, 2020 00:17    Post subject: Reply with quote

Можно ли использовать в скриптах для WinScript Advanced данные из других wdx плагинов Total Commander?
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1201

Post (Separately) Posted: Sun Dec 06, 2020 08:47    Post subject: Reply with quote

Segmentum
Можно, тут писал, как.
Back to top
View user's profile Send private message
Zmy



Joined: 06 Apr 2015
Posts: 78

Post (Separately) Posted: Mon Dec 07, 2020 18:05    Post subject: Reply with quote

Skif_off, вы не поняли тонкий троллинг.

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

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

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

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

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

Зачем создавать сложное, если можно сделать лёгкое?
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1201

Post (Separately) Posted: Mon Dec 07, 2020 19:40    Post subject: Reply with quote

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

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

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

В принципе, разнообразные данные можно получать с помощью консольных утилит, тупо запуская и читая их вывод, без использования других wdx-плагинов напрямую (хотя они и могут упростить).
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2204
Location: Москва, Россия

Post (Separately) Posted: Wed Feb 24, 2021 18:46    Post subject: Reply with quote

Из другой ветки:
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

_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
Monarch-LFV



Joined: 22 Jul 2019
Posts: 58

Post (Separately) Posted: Thu Feb 25, 2021 17:13    Post subject: Reply with quote

Batya
Спасибо, очень круто получилось, несмотря на то, что уже сам реализовал на VBA в Экселе. В VBS сам не силен, несмотря на то, что вроде близкие языки.
Мне уже особо не нужно, но ради интереса можно развить тему, просто номер строки не обязательно может быть 12, как в примере. В качестве примера, представьте себе сметы, где разное количество строк, где-то 11, где-то 100, где-то 123... Но в конце, например в столбце "B" всегда имеется фраза "Итого по смете:", так вот например нужно получить значение в этой строке в столбце "C".
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2204
Location: Москва, Россия

Post (Separately) Posted: Thu Feb 25, 2021 19:28    Post subject: Reply with quote

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

_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
Mailk



Joined: 16 Jan 2010
Posts: 239

Post (Separately) Posted: Fri Feb 26, 2021 03:38    Post subject: Reply with quote

А у меня бухгалтерские pdf счета.
Нужно вывести в столбец данны по ним .
Реально такое?
Back to top
View user's profile Send private message
Monarch-LFV



Joined: 22 Jul 2019
Posts: 58

Post (Separately) Posted: Fri Feb 26, 2021 08:27    Post subject: Reply with quote

Batya
Немного не то. Здесь вы ищете просто последнюю строку, а нужно номер строки, в которой в столбце "B" фраза "Итого по смете:". Она может быть далеко не последней (после нее могут быть поля для подписи например).
Для понимания, если написать формулой в экселе, то получилось бы следующее:
Code:
=ВПР("Итого по смете:";B:C;2;ЛОЖЬ)


Mailk
Уже ведь обсуждали в ветке http://forum.wincmd.ru/viewtopic.php?t=15967&postdays=0&postorder=asc&&start=30
Или вышлете пример, я посмотрю.
Back to top
View user's profile Send private message
Monarch-LFV



Joined: 22 Jul 2019
Posts: 58

Post (Separately) Posted: Sat Feb 27, 2021 06:02    Post subject: Reply with quote

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

Спасибо за наводку!
Back to top
View user's profile Send private message
Monarch-LFV



Joined: 22 Jul 2019
Posts: 58

Post (Separately) Posted: Sun Feb 28, 2021 05:48    Post subject: Reply with quote

Немного разобравшись, написал еще один скрипт для плагина, может кому-нибудь пригодится (похож на работу плагина 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
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 ... 12, 13, 14
Page 14 of 14

 
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