[wdx] WinScript Advanced Content Plugin (x86\x64) (new)

Обсуждение только плагинов и утилит для Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Dimsok
Сообщения: 664
Зарегистрирован: Вс авг 17, 2014 00:45

Сообщение Dimsok »

Line:2
Char:2
Error: Object required: 'CreatedObject(...).NameSpace(...)
Code: 800A01A8

Не заморачивайся, не выходит и ладно.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Dimsok
:D А путь-то верный прописал?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Dimsok
Сообщения: 664
Зарегистрирован: Вс авг 17, 2014 00:45

Сообщение Dimsok »

Просто c:
Да и вообще как-то странно они открываются через TC4Shell. Словари в корне архива, а открывается сначала папка с: хоть dz может совем в др месте находиться.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Вот и я про то же.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Dimsok
Сообщения: 664
Зарегистрирован: Вс авг 17, 2014 00:45

Сообщение Dimsok »

Dictzip по умолчанию почему-то так архивирует. Вот сделал кнопку, чтобы файл сразу в корне был:

Код: Выделить всё

TOTALCMD#BAR#DATA
%ComSpec% /c for /f "delims=" %# in
('type %WF') do "%%COMMANDER_PATH%%\Plugins\exe\DictZipUI\dictzip.exe" -k "%%#" && move "%p%%~n#.dsl.dz" "%t"
%COMMANDER_PATH%\Totalcmd.exe,21
Compress dsl dicts with dictzip to other panel

1
-1
Запаковал таким образом dsl и xdxf для тестов:
https://yadi.sk/d/SmFt53QUujVp3

Если что-то получится, перепаковать таким образом все имеющиеся словари не сложно. Главное, чтоб Goldendict их заново индексировать не вздумал, вот это долго будет.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Dimsok писал(а):Если что-то получится
Да не в "получится" дело, а в копировании больших словарей в Temp, если такие имеются. Это всё весьма долго, и прогресс на Vista+ не убирается.. Для мелких словарей (до 4 Мб) можешь попробовать:[cut="Dicts.vbs"]

Код: Выделить всё

Dim FSO, FileName, ShA, Ext, Arch, Items, F, Temp, File, N,_
Stream, Reg, Enc, Content, Content1, Content2, Exec, Check
Set FSO = CreateObject("Scripting.FileSystemObject")
If Not FSO.FileExists(FileName) Then WScript.Quit
Set ShA = CreateObject("Shell.Application")
Ext = LCase(FSO.GetExtensionName(FileName))
If Ext = "dz" Then
  Set Arch = ShA.NameSpace(FileName)
  If Not Arch.Self.IsFolder Then WScript.Quit
  Ext = LCase(FSO.GetExtensionName(FSO.GetBaseName(FileName)))
  Set Items = ShA.NameSpace(FileName).Items
  Items.Filter 73952, "*"
  Set F = ShA.NameSpace(Items.Item(0).Path)
  Do While F.Self.IsFolder    
    Set F = ShA.NameSpace(F.Items.Item(0).Path)
  Loop : Temp = ShA.NameSpace(CreateObject("WScript.Shell")._
  ExpandEnvironmentStrings("%TEMP%")).Self.Path & ""
  File = Temp & F : If Not FSO.FileExists(File) Then _
  ShA.NameSpace(Temp).CopyHere F, 20
Else File = FileName End If
N = 0 : If Ext = "dsl" Then N = -1
Set Stream = FSO.OpenTextFile(File,,,N)
Set Reg = New Regexp : Reg.IgnoreCase = True
If Ext = "dsl" Then
  Call DSL("NAME", Content)_
  ("INDEX_LANGUAGE", Content1)("CONTENTS_LANGUAGE", Content2)
ElseIf Ext = "xdxf" Then
  Reg.Pattern = ".*encoding=""(.*)"".*" : Check = 1
  Enc = Reg.Execute(Stream.ReadLine)(0).Submatches(0)
  Reg.Pattern = "^<xdxf lang_from=""(\w+)"" lang_to=""(\w+)"" "
  Stream.SkipLine  : Set Exec = Reg.Execute(Stream.ReadLine)(0)
  Content1 = Exec.Submatches(0) : Content2 = Exec.Submatches(1)
  Reg.Pattern = "^<full_name>(.+)</full_name>"
  With CreateObject("ADODB.Stream")
    .Open : .Charset = "windows-1251" : .WriteText Stream.ReadLine
    .Position = 0 : .Charset = Enc
    Content = Reg.Execute(.ReadText)(0).Submatches(0) : .Close
  End With
End If : Stream.Close : Set Stream = Nothing
If IsObject(F) Then
  FSO.GetFile(File).Delete
  FSO.GetFolder(Temp & "TC4Shell").Delete
End If : Set FSO = Nothing

Function DSL(Ins, Cont)
  Reg.Pattern = "^#" & Ins & "\s+""(.*)""$"
  Cont = Reg.Execute(Stream.ReadLine)(0).Submatches(0)
  Set DSL = GetRef("DSL")
End Function
[/cut]Понятно, что vbs-ini-ключи нужно перед этим обратно закомментировать.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Dimsok
Сообщения: 664
Зарегистрирован: Вс авг 17, 2014 00:45

Сообщение Dimsok »

Некоторые отображают норм, некоторые С:\Docume~. Впрочем, это неважно - даже не на самых больших словарях повисает надолго, так что первый вариант скрипта без Tc4Shell более пригодный. Если бы ещё все процессы 7z.exe и more.com завершались бы, было вообще хорошо. :D
Dimsok
Сообщения: 664
Зарегистрирован: Вс авг 17, 2014 00:45

Сообщение Dimsok »

А саму Dictzip нельзя использовать? При декомпрессии там есть возможность stdout.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Я тогда ещё пробовал, утилита пакует файл, никак не риагируя на ключ -с.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Dimsok
Сообщения: 664
Зарегистрирован: Вс авг 17, 2014 00:45

Сообщение Dimsok »

При распаковке реагирует. Там указано, что этот ключ только при распаковке действует. А зачем для извлечения строк нужно паковать?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Да не суть важно, он не умеет читать текст, он просто архив как бинарник выводит.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Dimsok
Сообщения: 664
Зарегистрирован: Вс авг 17, 2014 00:45

Сообщение Dimsok »

-d "*.dz" -c
Отображает вполне себе текстовое содержимое в консоль.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Выводит строки такого плана: ╤Д╨╛╤А╤Б-╨╝╨░╨╢╨╛╤А.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Dimsok
Сообщения: 664
Зарегистрирован: Вс авг 17, 2014 00:45

Сообщение Dimsok »

Не знаю, у меня норм отображается. В консоли правда русские не видны, но перенаправление в файл выдаёт корректный текст.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

SHA у dictzip.exe такой?: ad160360c5c762f4906ffcda5d43a010be408b09
Вот кнопка:

Код: Выделить всё

TOTALCMD#BAR#DATA
cmd /k "%COMMANDER_PATH%\Utils\dictzip.exe" -d
%N -c
%COMMANDER_EXE%,2
Вывод с пом. dictzip
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Ответить