Страница 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 уже не понимает например. Большинство строчников выдают подсказку 
 
 
 Да, я нашла, смотрела, даже начала было разбираться, но, как обычно, нужно было быстро заканчивать, поэтому в итоге был выбран самый простой путь, всё как обычно, в общем. Так и работаем пока  
