Как прочитать файл из архива?

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Ольга
Постоянный обитатель
Сообщения: 135
Зарегистрирован: 29 мар 2005, 17:49

Как прочитать файл из архива?

Сообщение Ольга »

Нужно загрузить данные в Галактику из файла, который приходит в zip архиве. В самом архиве еще куча разного ненужного барахла.
То есть у меня есть путь на архив, мне надо посмотреть, если в архиве нужный файл (или файлы), если есть - вытащить его, желательно при этом не разворачивая весь архив.

Это как то можно провернуть из Vip-а? Вроде Галактика умеет работать с архивами... Вопрос, как?
Если кто сталкивался, подскажите, в сторону какого варианта посмотреть?

По форуму поискала, не нашла ничего подходящего, увы.
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: Как прочитать файл из архива?

Сообщение Den »

в конце концов, можно батник просто написать попробовать, который ищет в архиве нужный файл, и ,если он есть распаковывает его из архива
Ну и дергать его из VIP ExecProgram..
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Как прочитать файл из архива?

Сообщение m0p3e »

Есть dll-ки для работы с архивами. Например 7z.dll.
Сам не пробовал. :)
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Re: Как прочитать файл из архива?

Сообщение RAJAH »

Ольга писал(а):желательно при этом не разворачивая весь архив
Обычно в программировании виден лишь конечный результат: например, кажется, что в файл дописали строку, а на самом деле, удалили весь файл и записали новый со строкой. :-D Так и здесь, наверное, можно: 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
Ольга
Постоянный обитатель
Сообщения: 135
Зарегистрирован: 29 мар 2005, 17:49

Re: Как прочитать файл из архива?

Сообщение Ольга »

Спасибо всем! Куда смотреть примерно понятно))
Про батник я думала, но надеялась, что какие-то уже готовые функции все же существуют.
Ушла экспериментировать... :grin:
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Как прочитать файл из архива?

Сообщение edward_K »

встроенный есть zip алгоритм, и наверное достаточно старый.
Вместо батника можно и сразу rar запустить в фоне.
Ольга
Постоянный обитатель
Сообщения: 135
Зарегистрирован: 29 мар 2005, 17:49

Re: Как прочитать файл из архива?

Сообщение Ольга »

edward_K писал(а):встроенный есть zip алгоритм, и наверное достаточно старый.
Я покопалась по внешних функциях и ничего не нашла. Я не там смотрела?
В принципе, у меня с 7zip и батником все получилось - и список файлов получить, и извлечь только нужное. Проблема только, что 7zip-ом мы не пользуемся, если оставлять решение на нем, придется ставить по всем пользователям. Поэтому я и хотела изначально использовать что-то встроенное в Галактику.
А вот с winrar, который у всех установлен, не получилось, почему-то.
Buddy
Постоянный обитатель
Сообщения: 124
Зарегистрирован: 02 июн 2016, 15:18
Откуда: Галактика СПб

Re: Как прочитать файл из архива?

Сообщение Buddy »

Ольга писал(а):А вот с winrar, который у всех установлен, не получилось, почему-то.
В состав WinRar входит rar.exe (консольная версия архиватора). С ним пробовали работать?
Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

Re: Как прочитать файл из архива?

Сообщение Masygreen »

Ольга писал(а):
edward_K писал(а):встроенный есть zip алгоритм, и наверное достаточно старый.
Я покопалась по внешних функциях и ничего не нашла. Я не там смотрела?
В принципе, у меня с 7zip и батником все получилось - и список файлов получить, и извлечь только нужное. Проблема только, что 7zip-ом мы не пользуемся, если оставлять решение на нем, придется ставить по всем пользователям. Поэтому я и хотела изначально использовать что-то встроенное в Галактику.
А вот с winrar, который у всех установлен, не получилось, почему-то.
Зачем всем ставить? Он же может с сетевой папки работать?
Время ведет!
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Как прочитать файл из архива?

Сообщение edward_K »

раз вы не хотите юзать dll (Это да , несколько сложно, не все dll подходят, для некоторых нужно сгенерить обертку(С#), для Dll на Delphi нужно где то подсмотреть состав функции и параметров к ним), то вам нужно использовать строчник(rar.exe, pkzip и так далее). Большинство строчных распаковщиков не требуют установки и их можно запускать откуда угодно, главно что бы он съел ваш формат. Архивы от 7zip rar уже не понимает например. Большинство строчников выдают подсказку

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

rar /? >!.txt
Ольга
Постоянный обитатель
Сообщения: 135
Зарегистрирован: 29 мар 2005, 17:49

Re: Как прочитать файл из архива?

Сообщение Ольга »

Спасибо Всем!
В принципе сейчас используем 7zip и батник, пару месяцев полёт нормальный. Просто я надеялась, когда открывала тему, что у Галактики есть свой встроенный функционал для этих целей.
Buddy писал(а):
Ольга писал(а):А вот с winrar, который у всех установлен, не получилось, почему-то.
В состав WinRar входит rar.exe (консольная версия архиватора). С ним пробовали работать?
Насколько я помню, консольный winrar отказался работать с интересующими нас архивами.
Masygreen писал(а): Зачем всем ставить? Он же может с сетевой папки работать?
Именно так и сделали
edward_K писал(а):раз вы не хотите юзать dll (Это да , несколько сложно, не все dll подходят, для некоторых нужно сгенерить обертку(С#), для Dll на Delphi нужно где то подсмотреть состав функции и параметров к ним), то вам нужно использовать строчник(rar.exe, pkzip и так далее). Большинство строчных распаковщиков не требуют установки и их можно запускать откуда угодно, главно что бы он съел ваш формат. Архивы от 7zip rar уже не понимает например. Большинство строчников выдают подсказку

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

rar /? >!.txt
:grin: Да, я нашла, смотрела, даже начала было разбираться, но, как обычно, нужно было быстро заканчивать, поэтому в итоге был выбран самый простой путь, всё как обычно, в общем. Так и работаем пока :grin:
Ответить