Групповая распаковка по маске | |
---|---|
boba Автор Сообщений: 6269 Откуда: Медвежьи озера- Дата регистрации: 26.03.2001 |
Есть некая директория,
где среди прочего есть zip файлы (немеряно их) , названия которых начинаются на qcl В каждом архиве есть много чего, но всегда есть файл в названии которого есть слово daily. Но , название начинается с года и месяца Есть и другие имена файлов. Тип файлов csv Нужно написать конвейер, который в одну таблицу импортирует все эти файлы Распаковать сразу все zip не могу, распакованные файлы весят больше всех моих дисков. Поэтому все должно работать так, взял в цикле архив, распаковал оттуда только нужный файл, импортировал в таблицу, стер файл. Итд Пройти по всем нужным файлам, не проблема, импорт не проблема, не соображу , как раззиповать только нужный файл. Он может иметь имя 202101daily, 201902daily итд Другие типы имен должны попасть в другие таблицы *hours, *month |
Re: Групповая распаковка по маске | |
---|---|
ssa Сообщений: 13008 Откуда: Москва Дата регистрации: 23.03.2005 |
На чем можно писать сей конвейер?
------------------ Лень - это неосознанная мудрость. |
Re: Групповая распаковка по маске | |
---|---|
boba Автор Сообщений: 6269 Откуда: Медвежьи озера- Дата регистрации: 26.03.2001 |
на фоксе, конечно.
Да это и значения не имеет никакого |
Re: Групповая распаковка по маске | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Это имеет значение, т.к. для разных языков/систем существуют разные библиотеки распаковки zip-архивов с очень разными возможностями. Для дотнета всё тривиально: Для фокса - ну наверное проще всего будет задействовать 7z
------------------ WBR, Igor |
Re: Групповая распаковка по маске | |
---|---|
PaulWist Сообщений: 14621 Дата регистрации: 01.04.2004 |
forum.foxclub.ru
В цикле проверить файл по маске и нужный распаковать. ------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
Re: Групповая распаковка по маске | |
---|---|
boba Автор Сообщений: 6269 Откуда: Медвежьи озера- Дата регистрации: 26.03.2001 |
я похоже неверно объяснил
Имена файлов не называются daily Вопрос с именами решается банальным sys(2000 Это внутри каждого архива есть среди множества файлов файл, содержащий в имени daily Только их и нужно вытащить Содержание каждого архива огромно Сначала я выгребал все файлы подряд, импортировал в фокс нужные, потом стирал разархивированное, и шел в цикле на другой архив Через пол часа истратил весь диск |
Re: Групповая распаковка по маске | |
---|---|
PaulWist Сообщений: 14621 Дата регистрации: 01.04.2004 |
Володь, не надо извлекать из архива (ты не все ветки прочитал), в архиве можно проверить, что за файл
------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
Re: Групповая распаковка по маске | |
---|---|
boba Автор Сообщений: 6269 Откуда: Медвежьи озера- Дата регистрации: 26.03.2001 |
Попробовал попрактиковаться на коротких архивах
Но они расширение gz Код дает оле ошибку Архиватор сам такие файлы открывает Попробовал в цикле переименовать Объект внутренностей не видит ***m.o.NameSpace(fln).Items.count = 0 m.o = Createobject("Shell.Application") fln = SYS(5)+CURDIR()+Sys(2000,'*.gz') RENAME (fln) TO (SYS(5)+CURDIR()+JUSTSTEM(fln)+'.zip') fln = SYS(5)+CURDIR()+JUSTSTEM(fln)+'.zip' m.i = SYS(5)+CURDIR() SET STEP ON Do While Not Empty(fln) For Each ofile In m.o.NameSpace(fln).Items *** m.o.NameSpace(fln).Items.count = 0 ! If 'daily'$ofile.Name Or 'station'$ofile.Name m.o.NameSpace(m.i).CopyHere(ofile, 256) Endif fln = SYS(5)+CURDIR()+Sys(2000,'*.zip',1) RENAME (fln) TO (SYS(5)+CURDIR()+JUSTSTEM(fln)+'.zip') fln = SYS(5)+CURDIR()+JUSTSTEM(fln)+'.zip' Enddo |
Re: Групповая распаковка по маске | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
gz это не zip архив ни разу. И, скорее всего, там внутри лежит tar файл (gzip не может упаковывать несколько файлов в один архив, потому сначала нужные файлы сцепляют при помощи утилиты tar - стандартный приём для unix-подобных систем).
7z может при помощи пайплайна обработать оба формата - и упаковщик gzip и "соединитель" файлов tar. что-то наподобии
------------------ WBR, Igor |
Re: Групповая распаковка по маске | |
---|---|
boba Автор Сообщений: 6269 Откуда: Медвежьи озера- Дата регистрации: 26.03.2001 |
Игорь
Сделано прямо наоборот имяю.tar.gz Про Линукс я в курсе, в конце 80 начале 90 х много там чего писал, и на c-shell даже прототип того, что сейчас зовется вэб сервисом. И конвейеры программами писал. Нет у меня этого сейчас. |
Re: Групповая распаковка по маске | |
---|---|
sphinx Сообщений: 31182 Откуда: Каменск-Уральски Дата регистрации: 22.11.2006 |
Цитата: Володя, а нужно-то что? ------------------ "Veni, vidi, vici!"(с) |
Re: Групповая распаковка по маске | |
---|---|
boba Автор Сообщений: 6269 Откуда: Медвежьи озера- Дата регистрации: 26.03.2001 |
Есть сотни две архивов, некоторые zip (решено
с вашей помощь), и tar.gz Нужно написать конвейер , достающий из архива только нужные по маске имени файлы. После каждой конвертации каждый файл импортировать в dbf |
Re: Групповая распаковка по маске | |
---|---|
boba Автор Сообщений: 6269 Откуда: Медвежьи озера- Дата регистрации: 26.03.2001 |
Запуск tar все решил
tar -xvzf d:\tilt\B201.202100100Tilt.tgz -C D:\MyOutputFolder |
© 2000-2024 Fox Club  |