С Новым годом! Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
775 / 256 / 43
Регистрация: 09.12.2016
Сообщений: 855

Импорт файла из архива

27.03.2021, 21:26. Показов 3417. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

Сейчас занимаютсь импортом в базу файлов, которые приходят нам в zip-архиве. Файлы имеют всегда одинаковый набор полей, но разные названия, в зависимости от даты и отправителя.

Для выбора конкретного файла использую Application. FileDialog. Но так работает, когда файл уже извлечен из архива. Лучше было бы импортировать файлы из самомого архива, без предварительного извлечения. Но так у меня не получается.

Может кто-то может подсказать, как сделать такое.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.03.2021, 21:26
Ответы с готовыми решениями:

Чтение файла из архива
Здравствуйте.Возможно ли чтение файла(текстового)из архива с помощью IO.File.ReadAllLines :|

Открытие файла из архива
Здравствуйте! Можете пожалуйста помочь с реализацией программы которая может открывать картинки из архива? Нужно в компонент TImage...

Удаление файла из архива
Как удалить файл или папку из архива используя DotNetZip?

23
ᴁ ©
Эксперт MS Access
 Аватар для АЕ
4140 / 2434 / 503
Регистрация: 13.12.2016
Сообщений: 8,279
Записей в блоге: 5
27.03.2021, 21:49
tkrainyk,
Цитата Сообщение от tkrainyk Посмотреть сообщение
которые приходят нам в zip-архиве
Очень общее обобщение. Нужны подробности. Вас много? Почтой? Какой программой? Куда складываете? как извлекаете? Доступ по сети у кого есть? У кого право извлечь, изъять и уничтожить, чтобы не дублировался. Куда и как архивы ложить?
Думаю, что вообще сначала надо в сторону VBS смотреть, потом прикручивать к базе.
1
775 / 256 / 43
Регистрация: 09.12.2016
Сообщений: 855
27.03.2021, 21:59  [ТС]
Цитата Сообщение от АЕ Посмотреть сообщение
Вас много?
Совсем немного. Не более 10 файлов в день. Можна и сначала розархивировать, а потом уже импортировать. Но мне хочется усовершенствовать работу, чтоб пользователям было удобнее.

Я на сейчас думаю так: пользователь сохраняет файл из почтовой программы, а потом окрывает его без предварительного извлечения из архива, выбирая файл с помощью Application. FileDialog.

Добавлено через 3 минуты
Цитата Сообщение от АЕ Посмотреть сообщение
чтобы не дублировался
Думаю запретить дублирование составым индексом.
0
ᴁ ©
Эксперт MS Access
 Аватар для АЕ
4140 / 2434 / 503
Регистрация: 13.12.2016
Сообщений: 8,279
Записей в блоге: 5
27.03.2021, 22:06
Цитата Сообщение от tkrainyk Посмотреть сообщение
Вас много?
Совсем немного. Не более 10 файлов в день.
Я про пользователей, а вы про файлы. Повеселили
Посмотрите почтовик Бат. Он умеет складывать вложения в папку (хоть и в сетевую) Там и правила с подпапками можно организовать по получателю и т.п. Дальше то, о чем я говорил.
1
775 / 256 / 43
Регистрация: 09.12.2016
Сообщений: 855
27.03.2021, 22:11  [ТС]
Цитата Сообщение от АЕ Посмотреть сообщение
Я про пользователей
Импортировать файлы будут кто-то из 3 пользователей. Причем все они сидят в одном кабинете.

Просто у меня возникло желание усовершенствовать работу. И что в этом плохого.

Цитата Сообщение от АЕ Посмотреть сообщение
Посмотрите почтовик Бат.
У нас почта на gmail.

И да. В одном архиве - один файл.
0
ᴁ ©
Эксперт MS Access
 Аватар для АЕ
4140 / 2434 / 503
Регистрация: 13.12.2016
Сообщений: 8,279
Записей в блоге: 5
27.03.2021, 22:18
Цитата Сообщение от tkrainyk Посмотреть сообщение
У нас почта на gmail.
Анекдот про рацию на бронепоезде помните?
Не важно с какого сервера принимаете, сколько кабинетов занимают. Важно какой почтовой программой, в сколько адресов идет рассылка. Вы механизм прихода почты представляете?

Добавлено через 2 минуты
Вдогонку
0
775 / 256 / 43
Регистрация: 09.12.2016
Сообщений: 855
27.03.2021, 22:20  [ТС]
Цитата Сообщение от АЕ Посмотреть сообщение
Важно какой почтовой программой, в сколько адресов идет рассылка. Вы механизм прихода почты представляете?
АЕ, да никакой программой Непосредственно с браузера пользователь выгружает файл в общую папку. Файлы продублироваться не могут. А вот записи я думаю блокировать индексом.

Вопрос не организации работы, а можна ли и как импортировать файл с архива
0
ᴁ ©
Эксперт MS Access
 Аватар для АЕ
4140 / 2434 / 503
Регистрация: 13.12.2016
Сообщений: 8,279
Записей в блоге: 5
27.03.2021, 22:25
Цитата Сообщение от tkrainyk Посмотреть сообщение
а можна ли и как импортировать файл с архива
Можна
Предположим, что вы все организовали. Все полученные файлы, пронумерованы, извлечены, сложены в доступную сетевую папку. Осталось их по очереди открыть, импортировать данные в таблицу и уничтожить или перенести в архив во избежание дублирования.
А вы про индексы....
0
775 / 256 / 43
Регистрация: 09.12.2016
Сообщений: 855
27.03.2021, 22:32  [ТС]
Цитата Сообщение от АЕ Посмотреть сообщение
Можна
Так в том и вопрос, как? Использую на сейчас для получения пути к файлу Application. FileDialog. Извлеченный файл импортируется без проблем.
0
ᴁ ©
Эксперт MS Access
 Аватар для АЕ
4140 / 2434 / 503
Регистрация: 13.12.2016
Сообщений: 8,279
Записей в блоге: 5
27.03.2021, 22:37
А что касательно того, как открыть таблицу в другой базе данных и запросом на добавление импортировать данные в существующую таблицу, то это вопрос банальный и примеров на форуме в изобилии...

Добавлено через 2 минуты
Цитата Сообщение от tkrainyk Посмотреть сообщение
Application. FileDialog.
Судя на вашей зацикленности на ручном вводе, я предполагаю, что мы на разных языках сейчас говорим.
0
775 / 256 / 43
Регистрация: 09.12.2016
Сообщений: 855
27.03.2021, 22:37  [ТС]
Цитата Сообщение от АЕ Посмотреть сообщение
А что касательно того, как открыть таблицу в другой базе данных и запросом на добавление импортировать данные в существующую таблицу, то это вопрос банальный и примеров на форуме в изобилии...
Да я и пишу, что это у меня все выполняется.
0
Модератор
Эксперт MS Access
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
27.03.2021, 22:39
АЕ,

ТС спрашивает, как программно взять данные из архива, не распаковывая его предварительно вручную.

А что и как с этими данными и файлами делать дальше, он вроде не спрашивает.

Если правильно понимаю вопрос ТС.
0
ᴁ ©
Эксперт MS Access
 Аватар для АЕ
4140 / 2434 / 503
Регистрация: 13.12.2016
Сообщений: 8,279
Записей в блоге: 5
27.03.2021, 22:40
Цитата Сообщение от tkrainyk Посмотреть сообщение
Да я и пишу, что это у меня все выполняется.
Рекомендую еще раз перечитать очень внимательно всю вашу тему очень внимательно.
Большего я вам не скажу.

Добавлено через 51 секунду
Capi, я ему и cказал - распакуйте с помощью VBS
0
775 / 256 / 43
Регистрация: 09.12.2016
Сообщений: 855
27.03.2021, 22:42  [ТС]
Цитата Сообщение от АЕ Посмотреть сообщение
Судя на вашей зацикленности на ручном вводе, я предполагаю, что мы на разных языках сейчас говорим.
Тогда давайте прекратим наш диалог.

Я понимаю, что вы предлагаете все автоматизировать. Но когда над процедурой для автоматизации надо работать целый день, а выполнение вручную занимает 5 минут, тогда возникает очень интересный вопрос: а надо ли зря тратить время.

Добавлено через 35 секунд
Цитата Сообщение от Capi Посмотреть сообщение
ТС спрашивает, как программно взять данные из архива, не распаковывая его предварительно вручную.
А что и как с этими данными и файлами делать дальше, он вроде не спрашивает.
Если правильно понимаю вопрос ТС.
Да, правильно.

Добавлено через 1 минуту
Цитата Сообщение от АЕ Посмотреть сообщение
Capi, я ему и cказал - распакуйте с помощью VBS
Очень содержательный ответ. Спасибо.
0
ᴁ ©
Эксперт MS Access
 Аватар для АЕ
4140 / 2434 / 503
Регистрация: 13.12.2016
Сообщений: 8,279
Записей в блоге: 5
27.03.2021, 22:45
Цитата Сообщение от tkrainyk Посмотреть сообщение
Очень содержательный ответ. Спасибо.
Умный поймет. Я рассчитывал на вашу репутацию...
0
775 / 256 / 43
Регистрация: 09.12.2016
Сообщений: 855
27.03.2021, 22:52  [ТС]
Цитата Сообщение от АЕ Посмотреть сообщение
Умный поймет.
Не все могут быть такими умными как вы. Есть люди и посредственные.

Добавлено через 2 минуты
Что нашел сам:

https://www.excel-vba.ru/chto-... ilefromzip

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
'---------------------------------------------------------------------------------------
' Procedure : ExtractFileFromZip
' DateTime  : 03.08.2014 22:02
' Author    : The_Prist(Щербаков Дмитрий)
'             http://www.excel-vba.ru
' Purpose   : Извлечение из архива конкретного файла
'---------------------------------------------------------------------------------------
Sub ExtractFileFromZip()
'C:\Documents            - папка для извлечения файла из архива
'C:\Documents\VBAZip.zip - имя ZIP-архива, из которого необходимо извлечь файл
'Книга1.xls              - имя файла в ZIP-архиве, который необходимо извлечь
    With CreateObject("Shell.Application").Namespace(("C:\Documents"))
        .CopyHere "C:\Documents\VBAZip.zip" & "\" & "Книга1.xls"
    End With
End Sub
Сейчас буду пробовать.
0
ᴁ ©
Эксперт MS Access
 Аватар для АЕ
4140 / 2434 / 503
Регистрация: 13.12.2016
Сообщений: 8,279
Записей в блоге: 5
27.03.2021, 23:03
Лучший ответ Сообщение было отмечено tkrainyk как решение

Решение

tkrainyk, можно и так
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Set ShellApp = CreateObject("Shell.Application")
 
Set objTMPFolder = ShellApp.NameSpace("C:\TMP1") 'временная папка'
Set objDestFolder = ShellApp.NameSpace("C:\TMP") 'основная папка'
Set objFolder = ShellApp.NameSpace("C:\") 'папка с zip файлами'
 
Set objFolderItems = objFolder.Items()
objFolderItems.Filter 64,"*.zip"
 
   For Each f In objFolderItems
      Set objSrcFolder = ShellApp.NameSpace(f)
      objTMPFolder.CopyHere objSrcFolder.Items 'распаковка во временную папку'
   Next
 
objDestFolder.MoveHere objTMPFolder.Items,4+16 'бесшумное перемещение в основную папку'
Добавлено через 2 минуты
Но это как раз тот самый VBS...
1
775 / 256 / 43
Регистрация: 09.12.2016
Сообщений: 855
27.03.2021, 23:15  [ТС]
Цитата Сообщение от АЕ Посмотреть сообщение
tkrainyk, можно и так
Вот это я понимаю ответ. Спасибо.

А о файлах я писал в самом начале.

Цитата Сообщение от tkrainyk Посмотреть сообщение
Сейчас занимаютсь импортом в базу файлов, которые приходят нам в zip-архиве.
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
29.03.2021, 02:45
Цитата Сообщение от tkrainyk Посмотреть сообщение
Можна и сначала розархивировать, а потом уже импортировать. Но мне хочется усовершенствовать работу, чтоб пользователям было удобнее.
Не увидел в этой цепочке пользователя. Пользователи при чём вообще?
0
ᴁ ©
Эксперт MS Access
 Аватар для АЕ
4140 / 2434 / 503
Регистрация: 13.12.2016
Сообщений: 8,279
Записей в блоге: 5
29.03.2021, 09:52
Цитата Сообщение от alvk Посмотреть сообщение
Не увидел в этой цепочке пользователя.
По правде сказать, я сначала в эту сторону (без пользователей) и начал ответ строить...
Но когда нет ответов где "живут" файлы, сколько ящиков, сетевая доступность, что внутри архива. Нет алгоритма добавления/ замены записей.
Да и вообще ТС устроило и слава богу. Думаю, что он о всем, что я обозначил, опять начнет спрашивать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.03.2021, 09:52
Помогаю со студенческими работами здесь

Выбор исходного файла через диалог открытия файла и импорт его в БД акссес
Народ подскажите плиз ! =) вот задание : 1. выбор исходного файла через диалог открытия файла (лист 1.xls) 2.импорт содержимого файла ...

Импорт данных из файла .csv в mysql сразу же после загрузки файла на сервер
Коллеги! Добрый день! Помогите пожалуйста. Задача состоит в том, чтобы через форму страницы загрузить файл расширения .csv на сервер и...

Как распаковать файл из архива внутри архива? Ionic.Zip
Всем привет! Пишу программу для распаковки файла "Main.xml" в ZIP архиве "Test2" в ZIP архиве "Test". Для лучшего понимание...

Создание файла-архива на VB Script
Есть файл .xls. Нужно создать .zip или .rar архив. Заранее спасибо.

Извлечение одного файла из архива.
Подскажите пожайлуста, пожайлуста! Как с помощью VB из архива RAR защищенного паролем (пароль заранее известен) достать 1 файл, не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru