Страница 1 из 1
Как прочитать файл из архива?
Добавлено: 16 авг 2018, 17:36
Ольга
Нужно загрузить данные в Галактику из файла, который приходит в zip архиве. В самом архиве еще куча разного ненужного барахла.
То есть у меня есть путь на архив, мне надо посмотреть, если в архиве нужный файл (или файлы), если есть - вытащить его, желательно при этом не разворачивая весь архив.
Это как то можно провернуть из Vip-а? Вроде Галактика умеет работать с архивами... Вопрос, как?
Если кто сталкивался, подскажите, в сторону какого варианта посмотреть?
По форуму поискала, не нашла ничего подходящего, увы.
Re: Как прочитать файл из архива?
Добавлено: 17 авг 2018, 02:11
Den
в конце концов, можно батник просто написать попробовать, который ищет в архиве нужный файл, и ,если он есть распаковывает его из архива
Ну и дергать его из VIP ExecProgram..
Re: Как прочитать файл из архива?
Добавлено: 17 авг 2018, 12:29
m0p3e
Есть dll-ки для работы с архивами. Например 7z.dll.
Сам не пробовал.
Re: Как прочитать файл из архива?
Добавлено: 17 авг 2018, 14:46
RAJAH
Ольга писал(а):желательно при этом не разворачивая весь архив
Обычно в программировании виден лишь конечный результат: например, кажется, что в файл дописали строку, а на самом деле, удалили весь файл и записали новый со строкой.
Так и здесь, наверное, можно: bat'ом, как предложили выше, распаковать архив, удалить весь мусор из извлечённого - останется только нужный файл. Когда-то из архива классификаторов ЦБ таким образом справочник банков вытягивал.
Код: Выделить всё
if exist bnkseek.dbf del bnkseek.dbf
"C:\Program Files\7-Zip\7z.exe" x -y *.zip
ren bnkseek.dbf bnkseek.tmp
if exist *DBF del *DBF
ren bnkseek.tmp bnkseek.dbf
Re: Как прочитать файл из архива?
Добавлено: 20 авг 2018, 14:23
Ольга
Спасибо всем! Куда смотреть примерно понятно))
Про батник я думала, но надеялась, что какие-то уже готовые функции все же существуют.
Ушла экспериментировать...
Re: Как прочитать файл из архива?
Добавлено: 23 авг 2018, 14:32
edward_K
встроенный есть zip алгоритм, и наверное достаточно старый.
Вместо батника можно и сразу rar запустить в фоне.
Re: Как прочитать файл из архива?
Добавлено: 23 авг 2018, 15:12
Ольга
edward_K писал(а):встроенный есть zip алгоритм, и наверное достаточно старый.
Я покопалась по внешних функциях и ничего не нашла. Я не там смотрела?
В принципе, у меня с 7zip и батником все получилось - и список файлов получить, и извлечь только нужное. Проблема только, что 7zip-ом мы не пользуемся, если оставлять решение на нем, придется ставить по всем пользователям. Поэтому я и хотела изначально использовать что-то встроенное в Галактику.
А вот с winrar, который у всех установлен, не получилось, почему-то.
Re: Как прочитать файл из архива?
Добавлено: 22 окт 2018, 18:38
Buddy
Ольга писал(а):А вот с winrar, который у всех установлен, не получилось, почему-то.
В состав WinRar входит rar.exe (консольная версия архиватора). С ним пробовали работать?
Re: Как прочитать файл из архива?
Добавлено: 15 ноя 2018, 12:02
Masygreen
Ольга писал(а):edward_K писал(а):встроенный есть zip алгоритм, и наверное достаточно старый.
Я покопалась по внешних функциях и ничего не нашла. Я не там смотрела?
В принципе, у меня с 7zip и батником все получилось - и список файлов получить, и извлечь только нужное. Проблема только, что 7zip-ом мы не пользуемся, если оставлять решение на нем, придется ставить по всем пользователям. Поэтому я и хотела изначально использовать что-то встроенное в Галактику.
А вот с winrar, который у всех установлен, не получилось, почему-то.
Зачем всем ставить? Он же может с сетевой папки работать?
Re: Как прочитать файл из архива?
Добавлено: 15 ноя 2018, 12:31
edward_K
раз вы не хотите юзать dll (Это да , несколько сложно, не все dll подходят, для некоторых нужно сгенерить обертку(С#), для Dll на Delphi нужно где то подсмотреть состав функции и параметров к ним), то вам нужно использовать строчник(rar.exe, pkzip и так далее). Большинство строчных распаковщиков не требуют установки и их можно запускать откуда угодно, главно что бы он съел ваш формат. Архивы от 7zip rar уже не понимает например. Большинство строчников выдают подсказку
Re: Как прочитать файл из архива?
Добавлено: 15 ноя 2018, 19:47
Ольга
Спасибо Всем!
В принципе сейчас используем 7zip и батник, пару месяцев полёт нормальный. Просто я надеялась, когда открывала тему, что у Галактики есть свой встроенный функционал для этих целей.
Buddy писал(а):Ольга писал(а):А вот с winrar, который у всех установлен, не получилось, почему-то.
В состав WinRar входит rar.exe (консольная версия архиватора). С ним пробовали работать?
Насколько я помню, консольный winrar отказался работать с интересующими нас архивами.
Masygreen писал(а): Зачем всем ставить? Он же может с сетевой папки работать?
Именно так и сделали
edward_K писал(а):раз вы не хотите юзать dll (Это да , несколько сложно, не все dll подходят, для некоторых нужно сгенерить обертку(С#), для Dll на Delphi нужно где то подсмотреть состав функции и параметров к ним), то вам нужно использовать строчник(rar.exe, pkzip и так далее). Большинство строчных распаковщиков не требуют установки и их можно запускать откуда угодно, главно что бы он съел ваш формат. Архивы от 7zip rar уже не понимает например. Большинство строчников выдают подсказку
Да, я нашла, смотрела, даже начала было разбираться, но, как обычно, нужно было быстро заканчивать, поэтому в итоге был выбран самый простой путь, всё как обычно, в общем. Так и работаем пока