Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.07.2015, 18:55   #21
sanych_09
Пользователь
 
Аватар для sanych_09
 
Регистрация: 18.01.2011
Сообщений: 75
По умолчанию

Run-time Error '3004'
Не удается записать файл
sanych_09 вне форума Ответить с цитированием
Старый 30.07.2015, 18:59   #22
sanych_09
Пользователь
 
Аватар для sanych_09
 
Регистрация: 18.01.2011
Сообщений: 75
По умолчанию

Да, это скрин того, что выдал MsgBox...
и нужная мне часть это сам файл, имя первого файла для скачивания PH1_Colocation....*.csv
sanych_09 вне форума Ответить с цитированием
Старый 31.07.2015, 07:45   #23
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Run-time Error '3004'
блин, да уж посмотрите через msgbox, что там за имя файла формируется...

Код:
MSGBOX CuDir & WinHttpReq.GetResponseHeader("filename")
если увидите, что имя файла в кавычках, которые надо убрать, - так уберите их:
Код:
MSGBOX CuDir & split(WinHttpReq.GetResponseHeader("filename"),"""")(1)
EducatedFool вне форума Ответить с цитированием
Старый 31.07.2015, 12:19   #24
sanych_09
Пользователь
 
Аватар для sanych_09
 
Регистрация: 18.01.2011
Сообщений: 75
По умолчанию

Код:
MsgBox CuDir & WinHttpReq.GetResponseHeader("filename")
выдает только путь. D:\временно\5\
имя файла там не прописано
sanych_09 вне форума Ответить с цитированием
Старый 31.07.2015, 20:16   #25
sanych_09
Пользователь
 
Аватар для sanych_09
 
Регистрация: 18.01.2011
Сообщений: 75
По умолчанию

Все стало ясно, почитав доп.литературу по обработке заголовков HTTP запросов.


Заголовком в которой содержится ИМЯ ФАЙЛА есть строка не filename=... а

Content-Disposition.
Код:
MsgBox CuDir & WinHttpReq.GetResponseHeader("Content-Disposition")
этот код выдает следующий текс: D:\временно\5\attachment;filename=" PH1_New_Colocation_DPR_NEW_20150731 _1740H.csv" (в приложении принскрин)

теперь получается, чтобы использовать код для сохранения файла

Код:
oStream.SaveToFile CuDir & WinHttpReq.GetResponseHeader("Content-Disposition")
но из него нужно вырезать лишний текст attachment;filename= вместе кавычками и ставить только имя файла. тогда должно получиться все.

а как можно вырезать лишний текст? спасибо
Изображения
Тип файла: jpg MsgBox2.jpg (51.3 Кб, 106 просмотров)
sanych_09 вне форума Ответить с цитированием
Старый 31.07.2015, 20:23   #26
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

ну а если хоть немного (ну хоть совсем чуть-чуть) применить фантазию?

Код:
oStream.SaveToFile CuDir & split(WinHttpReq.GetResponseHeader("Content-Disposition"),"""")(1)
EducatedFool вне форума Ответить с цитированием
Старый 31.07.2015, 20:30   #27
sanych_09
Пользователь
 
Аватар для sanych_09
 
Регистрация: 18.01.2011
Сообщений: 75
По умолчанию

уже применил)))) посмотрел предыдущий Ваш код и MsgBox выдал что нужно!

просто не успел написать! радости был нет предела! все скачалось

Спасибо большое! еще один этап пройден.

дальше хочу progress bar пока файлы будут скачиваться и copy paste как значения. но это будет другая тема!


Ребята, спасибо! Вы крутые реально!
sanych_09 вне форума Ответить с цитированием
Старый 17.08.2015, 20:40   #28
sanych_09
Пользователь
 
Аватар для sanych_09
 
Регистрация: 18.01.2011
Сообщений: 75
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
после строки If WinHttpReq.Status = 200 Then
напишите строку
Код:
MsgBox WinHttpReq.GetAllResponseHeaders
может, в сообщении увидите нужное имя файла (оттуда несложно его извлечь)

поскольку протестировать ваш код возможности нет, - нет и готового решения
потому что сервер может выдавать файл по-разному (через один или несколько редиректов)

все работало супер, пока кто-то нехороший поменял какие-то параменты наверное на сервере.
сейчас при использовании кода
Код:
MsgBox WinHttpReq.GetAllResponseHeaders
имя файла исчезло.

есть ли возможность каким-то образом найти имя файла, т.е заголовок в котором его имя прописано? ссылка для скачивания на сайт осталась прежней... если ее просто вставить в адресную строку Хрома, например, файл скачивается без проблем.
sanych_09 вне форума Ответить с цитированием
Старый 17.08.2015, 21:49   #29
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

если есть возможность получить имя файла вручную, то найдется и макросом.

ищите информацию, которая нужна Вам, расскажете где и как нашли, возможно Вам помогут сделать то же самое макросом.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 18.08.2015, 13:53   #30
sanych_09
Пользователь
 
Аватар для sanych_09
 
Регистрация: 18.01.2011
Сообщений: 75
По умолчанию

Код:
MsgBox WinHttpReq.GetAllResponseHeaders
выдал информацию, а нужного файла тут нет (скиншот прикреплен)

чтобы загрузить файл вручную, нужно сделать:
1. залогиниться на сайт
2. перейти по гиперссылке
пример, http://site.com/tracker/projectone/r...e/download/359
название сайта я изменил
3. начинается закачка

а раньше, с использованием MsgBox можно было видеть имя файла.
Изображения
Тип файла: jpg MsgBox3_1.jpg (77.7 Кб, 87 просмотров)

Последний раз редактировалось sanych_09; 18.08.2015 в 13:57.
sanych_09 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ProgressBar для скачивания KoBRaAndrey Работа с сетью в Delphi 5 04.04.2011 23:52
Проги для скачивания сайта Bingam Vici Софт 1 22.02.2009 10:06
Плагин для Download Master-а jocry Общие вопросы Delphi 6 14.02.2009 11:42
программа для скачивания сайтов Noor Свободное общение 1 26.04.2007 16:59