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 

Single Post  Topic: [wdx] WinScript Advanced Content Plugin (x86\x64) (new) 
Author Message
Flasher



PostPosted: Mon Sep 02, 2019 23:18    Post subject: Reply with quote

А я тут вижу 34 буквенных "слова". Набросал следующее:
Code:
;::::::::::::::::::::::::::::::: SWLcount.au3 ::::::::::::::::::::::::::::::
; Назначение: получение числа символов, слов, строк для информационных полей

; Положить blb2txt.exe в %COMMANDER_PATH%\Plugins\wdx\WinScriptsAdv\Scripts\
; Программа доступна по следующей ссылке:  http://balabolka.site/blb2txt.zip
; Поддержка: azw, azw3, chm, djvu, doc(x), eml, epub, fb2, fb3, htm(l), odp,
; ods, odt, mobi, litmht, pdb, pdf, ppt(x), prc, rtf, tcr, wpd, wri, xls(x),
; а также любых текстовых файлов по списку заданных в options.ini расширений
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
#NoTrayIcon
Opt('MustDeclareVars', 1)
Dim $FileName
If FileGetSize($FileName) = 0 Then
  $FileName = ObjCreate('Shell.Application').NameSpace(0).ParseName($FileName).ExtendedProperty('LinkTarget')
  If Not $FileName Then Exit
  If Not FileGetSize($FileName) Then Exit
EndIf
Dim $Ext, $PID, $Text, $Text2, $Content, $Content1, $Content2
$Ext = StringRegExp($FileName, '((?<=\.)[^.]+|)$', 1)[0]
If Not $Ext Then Exit
If StringInStr('|azw|azw3|chm|djvu|doc|docx|eml|epub|fb2|fb3|htm|html|lit|mht|mobi|odp|ods|odt|pdb|pdf|ppt|pptx|prc|rtf|tcr|wpd|wri|xls|xlsx|', '|' & $Ext & '|', 2) Then
  $PID = Run('"' & EnvGet('COMMANDER_PATH') & '\Plugins\wdx\WinScriptsAdv\Scripts\blb2txt.exe" -f "' & $FileName & '" -o -rpn -sn -ss','', 0, 2)
  While 1
    $Text = StdoutRead($PID, 1)
    If $Text Then
      If $Text = $Text2 Then ExitLoop
    EndIf
    $Text2 = $Text
  WEnd
  $Text2 = ''
  StdioClose($PID)
Else
  Dim $oFile
  $oFile = FileOpen($FileName)
  $Text  = FileRead($oFile)
  FileClose($oFile)
EndIf
$Content  = StringLen($Text)
$Content1 = UBound(StringRegExp($Text,'\R', 3)) + 1
$Content2 = UBound(StringRegExp($Text,'\p{L}+-?\p{L}*', 3))
$Text = ''

options.ini wrote:
[Script]
ActiveScripts=...|SymbolsWordsLinesCount

; тут остальное

[SymbolsWordsLinesCount]
Script=SWLCount.au3
content=Символов
content1=Строк
content2=Слов
extensions=azw|azw3|bar|chm|cfg|conf|djvu|doc|docx|eml|epub|fb2|fb3|inf|ini|ion|htm|html|lit|lng|log|lst|me|mht|mobi|odp|ods|odt|pdb|pdf|ppt|pptx|prc|rtf|tcr|text|txt|wpd|wri|xls|xlsx
|etc
FoldersPaths=0
См. корректность значения ключа au3. Вместо etc дописываем свои нужники.
Как и ожидалось, получаем сопутствующие тормоза. В колонки выводить, наверное, не стоит. На больших/mobi будут наблюдаться вылеты балаболки. Лучше — в подсказках.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group