powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / проверка наличие файла\страницы в инете
37 сообщений из 37, показаны все 2 страниц
проверка наличие файла\страницы в инете
    #37758024
Фотография Qlewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как проверить наличие файла в интернете? есть код закачки файла с инета на комп
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Dim oXMLHTTP As Object
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
oXMLHTTP.Open "GET", "http://qlewer.mgn-host.ru/moi file.txt"
oXMLHTTP.Send
Do While oXMLHTTP.readyState <> 4
    DoEvents
Loop
With CreateObject("ADODB.Stream")
     .Mode = 3
     .Type = 1
     .Open
     .Write oXMLHTTP.responseBody
     .SaveToFile "C:\Sys\" & "moi file.txt", 2
End With

пытался скачать файл, а потом проверить его наличие на компе(да, изначально неправильный подход + файл создавался в любом случае, даже если файл удалён с хостинга! видимо, сохраняется в какой-то переменной). а как просто проверить наличие файла?
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37758032
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qlewer,

Читай номер ответа от сервера, oXMLHTTP.status, если 200 то страница имеется, если 404 то соответственно не найдена. А вообще проверить надо на каждом конкретном сервере что выдаёт
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37758033
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Вызывайте метод Open синхронно;
2) Анализируйте возвращаемый методом код ошибки.
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37758036
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qlewer,

URLDownloadToFile чем-то не подошел ?
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37758047
Фотография Qlewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VSVLAD,

напиши плз код этой строчки.

Akina1) Вызывайте метод Open синхронно; т.е. синхронно? а ошибок я не вижу. код отрабатывал, если не изменяет память, в любом случае, даже без onerror
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37758072
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qlewerт.е. синхронно?
Метод Open имеет 5 параметров. Ты даёшь ему только 2 обязательных.

qlewerа ошибок я не вижу
Ты их не смотришь. Потому и не видишь.

qlewerкод отрабатывал, если не изменяет память, в любом случае
Код отрабатывает потому, что он выполняется асинхронно. объекту даётся команда, и управление тут же возвращается в код. А объект там себе фигачит. А ты, как [censored], ждёшь, когда он тебе сообщит, что readyState <> 4...
Он не сработал бы только в случае, если объекту не смогла быть передана команда.

qlewerдаже без onerror
On Error в принципе не способен поймать ошибку, возникшую в объекте.

PS. Скопипастив код, не поленись сперва разобраться, как он работает. Почитать маны. И только потом делать на его основе что-то своё.
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37760356
Фотография Qlewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

спс. пока не опробовал. возникнут вопросы по теме - напишу.
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37781169
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е. правильно я понял, что для того, чтобы проверить наличие файла в инете, мне придётся постоянно перезапускать прогу? WTF?.. мб подскажет кто способ попроще?
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37781205
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перезапускать компьютер процедуру.
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37781211
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,

в соседнем топике ведь обсуждали, что это не помогает. пока прогу не перезапустить, она продолжает возвращать одно и то же, а значит, и наличие файла будет возвращать самое первое, полученное при запуске, и плевать она хотела на то, что файл сто раз с тех пор создавался. или это распространяется только на содержимое файлов, а не на их наличие?
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37781224
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37781240
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,

что это? чем это поможет нормально проверить наличие файла?
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37781266
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
    .setRequestHeader "Cache-Control", "no-store, no-cache"
    .setRequestHeader "Pragma", "no-cache"
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37781275
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,

можешь объяснить, что делают эти строки?) плз
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37781278
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,

как я понял, если впихнуть их в код, каждый следущий запрос будет выполняться "заново", без кэша. но что за "Pragma"?..
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37784001
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy
Код: vbnet
1.
2.
    .setRequestHeader "Cache-Control", "no-store, no-cache"
    .setRequestHeader "Pragma", "no-cache"

не помогло. "наличие файла" сохраняется, даже после удаления его с хостинга. т.е. запустил один раз, удалил файл с с хоста, а прога по прежнему считает, что файл существует. и наоборот: если файл появился, прога об этом не узнает. есть идеи?
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37784194
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очищать кэш не через опции, а принудительно - именно каталог, и именно из "самой проги" (естественно, в "проге" должна быть "такая опция"), анализируя блокировку файлов... И перед этим - не забыть сбросить буфера, закрыть хэндлы файлов, располагающихся в кэше, в "самой программе"... И не забывать делать Update, чтобы быть уверенным, что клиент анализирует те же данные, что и реально имеются...

Вообще, чем вы там занимаетесь? Тупо копипастите куски кода и докладываете нам о результатах работы этой солянки сбороной?
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37784196
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
.setRequestHeader("If-Modified-Since", "Thu, 1 Jan 1970 00:00:00 UTC")
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37784207
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VSVLAD
Код: vbnet
1.
.setRequestHeader("If-Modified-Since", "Thu, 1 Jan 1970 00:00:00 UTC")

такая строка даже не записывается
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37784217
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero,
Ну естественно скобки убери. Строку взял из былого проекта на VB.NET
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37784218
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VSVLAD,

работает!!!!! спасибо)))
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37784363
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero, итого - можете выложить окончательную правильную проверку?
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37784521
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так же не знаю как по уму пишется адрес на хостинг, ну вот закачиваю специально файл, как программно узнать, что есть файл
.....1.txt
что нет файла
.....2.txt
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37785028
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофа,

перечитай мои последние топики - в них готовые коды с объяснением каждой строчки. либо могу выложить код, когда буду в городе(завтра, мб)
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37785068
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero, там в каждом посте охи, ахи, да и том как путь пишется не сказано нигде
>могу выложить код, когда буду в городе(завтра, мб) - на этом и остановимся
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37785137
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофаBelowZero, там в каждом посте охи, ахи, да и том как путь пишется не сказано нигде
>могу выложить код, когда буду в городе(завтра, мб) - на этом и остановимся ой епт... первый пост этого топика прочитай!!! охи ахи? ... ты безнадежен, ищи сам
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37785203
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero, ух-ты как мы заговорили, я понял так
Код: vbnet
\r\nSub Макрос1()\r\n\r\nDim oXMLHTTP As Object\r\nSet oXMLHTTP = CreateObject("MSXML2.XMLHTTP")\r\noXMLHTTP.Open "GET", "/topic/934933&pg=1/1.txt"\r\noXMLHTTP.Send\r\n\r\nDo While oXMLHTTP.readyState <> 4\r\n    DoEvents\r\nLoop\r\n\r\nWith CreateObject("ADODB.Stream")\r\nПроверка = .setRequestHeader("If-Modified-Since", "Thu, 1 Jan 1970 00:00:00 UTC")\r\nEnd With\r\n\r\nEnd Sub\r\n
\r\n
получил отлуп, как надо?
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37785285
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: катастрофа
> получил отлуп, как надо?

Эндрю, какого лешего ты лепишь .setRequestHeader в объект ADOStream? Справку почитать так и неудосуживаешся :(

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37785299
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос, подожду Белова, пусть меня научит...
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37785358
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: катастрофа
> Игорь Горбонос, подожду Белова, пусть меня научит...

Я просто не понимаю вас с Беловым. Почему вы сознательно не хотите учится? За то время как ты появился на форуме,
мне понадобилась возможность получать из банка информацию по веб-интерфейсу. Я не разбирался так досконально как
Antonariy , но для моих нужд вполне достаточно. И за основу я взял пример 9662282 и всё.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37786266
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофаBelowZero, ух-ты как мы заговорили сорь, просто разговоры об "охах и ахах" в моих топиках - это камень в мой огород)катастрофаподожду Белова, пусть меня научит...
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Dim oXMLHTTP As Object
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
With oXMLHTTP
    .Open "GET", "http://qlewer.mgn-host.ru/836001.txt", False 'http://qlewer.mgn-host.ru/836001.txt это путь к файлу на хостинге, наличие которого(файла) проверяется
'false говорит о том, что запрос синхронный, и мы можем получить отчёт о наличии файла
    .setRequestHeader "If-Modified-Since", "Thu, 1 Jan 1970 00:00:00 UTC" 'эта опция помогает всегда получать "обновлённые" данные
End With
oXMLHTTP.Send
If oXMLHTTP.Status = 200 Then 'если файл\страница существует
MsgBox "Файл есть"
End If
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37786513
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero, спасибо, говорил, точно не знаю как путь к файлу на хостинге писать, как написал, получил отлуп:
Код: vbnet
\r\nSub Проверка_файла_страницы()\r\n\r\nDim oXMLHTTP As Object\r\nSet oXMLHTTP = CreateObject("MSXML2.XMLHTTP")\r\nWith oXMLHTTP\r\nDim Файл As String\r\nФайл = "http:///topic/934933&pg=1/1.txt"\r\n\'false говорит о том, что запрос синхронный, и можно получить отчёт о наличии файла\r\n.Open "GET", Файл, False\r\n\'эта опция помогает всегда получать "обновлённые" данные\r\n.setRequestHeader "If-Modified-Since", "Thu, 1 Jan 1970 00:00:00 UTC"\r\nEnd With\r\n\'Рун тайм эррор -2146697211(800с0005)!!!!!!!!!!!\r\noXMLHTTP.Send\r\n\'если файл\\страница существует\r\nIf oXMLHTTP.Status = 200 Then\r\nMsgBox "файл\\страница существует"\r\nElse\r\nMsgBox oXMLHTTP.Status & " " & "файл\\страница не существует"\r\nEnd If\r\n\r\nEnd Sub\r\n
\r\n
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37786651
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофа
Код: vbnet
\r\nФайл = "http:///topic/934933&pg=1/1.txt"\r\n
\r\n это что? попробуй скопировать этот путь в строку браузера. тебе выдаст отчёт о том, что такого сервера нет. логично, что и прога отвергает эту строку.
я нажал правой кнопкой по ссылке "скачать", "копировать адрес ссылки"(опера). получил путь http://www.sql.ru/forum/actualfile.aspx?id=12517319 . вставляю его в код
Код: vbnet
\r\nФайл = "http://www.sql.ru/forum/actualfile.aspx?id=12517319"\r\n
\r\n работает
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37786666
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero, открываю Ворд - пошагово запускаю код, получаю месседж
"500 файл\страница не существует"
прохожу снова не веря глазам, далее много много раз выдаёт "файл\страница существует"
Закрываю Ворд и всё описанное выше начинается сначала
Ересь?!
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37786676
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофа,

при чём тут ворд?
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37786684
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофа,

забей на этот файл. ты вводишь не прямое местонахождение файла на хосте, а посылаешь запрос к actualfile.aspx на получение файла. точное местоположение файла я сам хз... зарегись на любом бесплатном хосте, выложи туда файл и играйся
...
Рейтинг: 0 / 0
проверка наличие файла\страницы в инете
    #37786872
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZeroкатастрофа,

при чём тут ворд?
при том, что на нём проще всего протестировать, на ВБ6 - тоже самое!!!!
...
Рейтинг: 0 / 0
37 сообщений из 37, показаны все 2 страниц
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / проверка наличие файла\страницы в инете
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]