#1
by Voffka
Сначало: Set Shell = WScript.CreateObject("WScript.Shell") и запускаешь винрар: Shell.Run("C:Program FilesWinRARWinRAR.exe ключи и все остальные параметры",1,True)
#2
by Specky
нахера такие сложности? просто Shell(pathname[,windowstyle]) для любителей Win32 - Declare Function CreateProcess...
#5
by smaharbA
не прикалывайся )) если ОС начиная с Ме, то все будет работать как с обычной папкой через Shell.Application, только одно сперва надо для нового файла создать первые 22 байта, а там уж пиши в него как в папку
#7
by smaharbA
Код 1С пойдет ? В скрипте или екселе еще просче получится, "летающие листики" можно скрыть будет
#10
by smaharbA
Да, тупа работаешь как с папкой Ну чтобы не выдергивать его из архива, а прямо читать в 1с придется поизвращаться, а в скрипте или в ВБА все просто все теже for each f in fold.items(0 и ParseName и прочее
#13
by DES
Вот что получилось: Скрипт.Eval("Файл.Write(String.FromCharCode(80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0))"); {Обработка.ПримерРаботыС_ZIP.Форма.Модуль}: Ошибка выполнения Microsoft JScript: Объект не поддерживает это свойство или метод
#14
by smaharbA
это джаба скрипт, регистр буков имеет большое значение ... Примерно так Башка болит, правдо тяжело...
#15
by DES
Сорри, но ... Папка=Шел.namespace(Архив+" mp"); {Обработка.ПримерРаботыС_ZIP.Форма.Модуль}: Плохой тип переменной
#16
by smaharbA
там дело в том, что идет асинхронное копирование в ЗИП, и если много всего, то само сабой при коде типа нарвешься на , но если всеже надо так, то в цикле ожидания надо проверять запоковалось уже все или нет, проверять тупа по изменению размера файла или лучче по наличию или отсутствию ошибки типа а пока, попробуй разделить код на "Упаковать" и "Просмотреть содержимое"
#18
by smaharbA
[1C] //******************************************* Процедура Сформировать Архив="c: empМоя новая папка.zip"; Скрипт=СоздатьОбъект("MSScriptControl.ScriptControl"); Скрипт.language="javascript"; ФСО=СоздатьОбъект("scripting.filesystemobject"); Файл=ФСО.opentextfile(Архив,2,-1); Скрипт.AddObject("Файл",Файл); Скрипт.Eval("Файл.write(String.fromCharCode(80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0))"); Файл.Close; Шел=СоздатьОбъект("shell.application"); Папка=Шел.namespace(Архив); Папка.copyhere("c: emp mp"); Стр="Создаем архив - "+Архив; Пока (ВвестиСтроку(Стр,Стр,СтрДлина(Стр),0,1)<>0) и (ФС.СуществуетФайл(Архив)=0) Цикл КонецЦикла; КонецПроцедуры //******************************************* Функция Просмотр(Путь="") Архив="c: empМоя новая папка.zip"; Скрипт=СоздатьОбъект("MSScriptControl.ScriptControl"); Скрипт.language="javascript"; Шел=СоздатьОбъект("shell.application"); Папка=Шел.namespace(Архив+""+Путь); Скрипт.AddObject("Папка",Папка); Вложения=Скрипт.Eval("new Enumerator(Папка.Items)"); Пока Вложения.atEnd=0 Цикл Сообщить(Вложения.item.path); Если Вложения.item.IsFolder=-1 Тогда Просмотр(Вложения.item.path); КонецЕсли; Вложения.moveNext; КонецЦикла; КонецФункции [/1C] Просто в том примере я просматривал наверняка имеющуюся в архиве папку tmp, а тут с рекурсией весть архив от его "корня"
#23
by DES
сорри. занялся на досуге... а как же все-таки прочитать текстовый файл построчно из ZIP-архива как из папки ?
#25
by smaharbA
пока некогда пример сделать, я в печали - (чуть позже, там всамделе то он всеравно распакует, но какбы не явно)
#29
by Звездочёт
А что, параметр vOptions в скриптах не работает? :/ Вроде написано, что можно указывать числовые значения... Syntax: Folder.CopyHere(vItem [, vOptions]) vOptions: ... These flags are not defined as such for Microsoft® Visual Basic®, Visual Basic Scripting Edition (VBScript), or Microsoft JScript®, so you must define them yourself or use their numeric equivalents. ... 4 - Do not display a progress dialog box. ...
#32
by smaharbA
[1C] //******************************************* Процедура Сформировать Архив="c: empМоя новая папка.zip"; Скрипт=СоздатьОбъект("MSScriptControl.ScriptControl"); Скрипт.language="javascript"; ФСО=СоздатьОбъект("scripting.filesystemobject"); Файл=ФСО.opentextfile(Архив,2,-1); Скрипт.AddObject("Файл",Файл); Скрипт.Eval("Файл.write(String.fromCharCode(80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0))"); Файл.Close; Шел=СоздатьОбъект("shell.application"); Папка=Шел.namespace(Архив); Папка.copyhere("c: emp mp"); Стр="Создаем архив - "+Архив; Пока (ВвестиСтроку(Стр,Стр,СтрДлина(Стр),0,1)<>0) и (ФС.СуществуетФайл(Архив)=0) Цикл КонецЦикла; КонецПроцедуры //******************************************* Функция ПросмотрРекурс(Архив="",Путь="",Сп) Скрипт=СоздатьОбъект("MSScriptControl.ScriptControl"); Скрипт.language="javascript"; Шел=СоздатьОбъект("shell.application"); Папка=Шел.namespace(Архив+""+Путь); Скрипт.AddObject("Папка",Папка); Вложения=Скрипт.Eval("new Enumerator(Папка.Items)"); Пока Вложения.atEnd=0 Цикл Сп.ДобавитьЗначение(Вложения.item.path); Если Вложения.item.IsFolder=-1 Тогда ПросмотрРекурс(Архив,Вложения.item.path,Сп); КонецЕсли; Вложения.moveNext; КонецЦикла; КонецФункции Функция Просмотр Скрипт=СоздатьОбъект("MSScriptControl.ScriptControl"); Скрипт.language="javascript"; Архив="c: empМоя новая папка.zip"; Путь="tmp"; Сп=СоздатьОбъект("СписокЗначений"); ПросмотрРекурс(Архив,Путь,Сп); СпВыб=СоздатьОбъект("СписокЗначений"); Для к=1 По Сп.РазмерСписка Цикл ПутьФайла=Сп.ПолучитьЗначение(к); Расширение=СтрЗаменить(ПутьФайла,"."," |"); Расширение=СтрПолучитьСтроку(Расширение,СтрКоличествоСтрок(Расширение)); Расширение=?(Расширение=ПутьФайла,"",Расширение); Если Расширение="vbs" Тогда Шел=СоздатьОбъект("Shell.Application"); Папка=Шел.NameSpace(Архив); Файл=Папка.ParseName(ПутьФайла); Темп=Шел.NameSpace(КаталогВременныхФайлов); ФС.УдалитьФайл(КаталогВременныхФайлов+СтрЗаменить(Файл.path,"/","")); Темп.CopyHere(Файл); СпВыб.ДобавитьЗначение(КаталогВременныхФайлов+СтрЗаменить(Файл.path,"/","")); КонецЕсли; КонецЦикла; Текст=СоздатьОбъект("Текст"); Для к=1 По СпВыб.РазмерСписка Цикл Текст.Открыть(СпВыб.ПолучитьЗначение(к)); Сообщить("<<----"+СпВыб.ПолучитьЗначение(к)+"---->>"); Для н=1 По Текст.КоличествоСтрок Цикл Сообщить(Текст.ПолучитьСтроку(н)); КонецЦикла; Сообщить("<<-------->>"); Текст.Очистить; ФС.УдалитьФайл(СпВыб.ПолучитьЗначение(к)); КонецЦикла; КонецФункции // Просмотр [/1C]
#33
by smaharbA
Конечно это распаковка, чтобы внутри смотреть надо ИЕ задействовать, но и ИЕ всеравно всамделе-то распаковывает...
#34
by Voffka
Вместо двух строк ты стока хни написал... жуть... а то что ниже пошло - просто жесть, даже читать не стал..
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- Списание материалов с 10.3 каким образом в 1С: Бух 77
- Как перебросить контрагентов из одной конфы в другую.
- Повернуть картинку на форме на 90 градусов.
- Какое количество позиций номенклатуры выдержит ТиС?
- Вычет материальной помощи внешним совместителям не положен !
- Как узнать есть ли ссылки на документ ?
- v7: Учет расходов на НИОКР в налоговом учете в ПУБе?
- УПП. Док Корректировка стоимости списания товаров зачем он нужен?
- При загрузке компа системный динамик не пищит. В чем проблема?
- Выборка записей из dbf
- Если .....Пустая() ТОГДА
- как в консоли отчетов сделать все поля в одной колонке?
- Бухгалтерия. Корректировка фактической стоимости номенклатуры при закрытии
- Как монтировать путь с русскими буковами и другими символами ? (smb)
- Где на ИТС лежат примеры заданий для сертификации Профессионала?
- В УПП клиент-банк не выгружает документы
- Вызов формы из Двойного нажатия по строке
- Почему в приходной накладной при измение ставки НДС, не пересчитывается НДС
- v7: не могу найти абсолютное значение в коде 1с
- Создание отчета на основе документа Word