Скачивание файла - VB

Узнай цену своей работы

Формулировка задачи:

Добрый день! Пишем значит обновление для утилиты по работе с БД. Такой вопрос возник, для начала с кодом ознакомьтесь:
Листинг программы
  1. Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
  2. Private Sub Form_Load()
  3. '\\\\ГЌГ*Г·Г*ëî Г°Г*áîòû ïðîãðГ*ììû
  4. DoWork
  5. '\\\\ГЉГ®Г*ГҐГ¶ Г°Г*áîòû ïðîãðГ*ììû
  6. End Sub
  7. Sub DoWork()
  8. '\\\\ГЌГ*Г·Г*ëî ïðîöåäóðû "Ïîëó÷åГ*ГЁГҐ Г±ГІГ*ГІГіГ±Г* Г°Г*áîòû ïðîãðГ*ììû"
  9. FileNum = FreeFile
  10. sTempPath = Environ("TMP")
  11. Select Case True
  12. Case URLDownload(ftp_serv_1 & "IsWorkCMD.txt", sTempPath & "Xdj6lqU0f.txt")
  13. Open sTempPath & "Xdj6lqU0f.txt" For Input As FreeFile
  14. Line Input #FileNum, sTemp
  15. Close #FileNum
  16. If sTemp = IsWork Then
  17. '\\\\Ïðè ïîëó÷åГ*ГЁГЁ Г±ГІГ*ГІГіГ±Г* Г°Г*áîòû ïðîãðГ*ììû "DoWork" ïåðåâîäèì ïðîãðГ*ììó Гў Г°Г*áî÷åå ñòîñòîÿГ*ГЁГҐ
  18. '\\\\ГЁ âûïîëГ*ГїГҐГ¬ êîìГ*Г*äû ïîëó÷åГ*Г*ûå ГЁГ§ ГґГ*éëГ* êîìГ*Г*Г¤
  19. MsgBox "ÏðîãðГ*ììГ* Г°Г*áîòГ*ГҐГІ! Выполняем условие по работе с базой данных."
  20. End If
  21. If sTemp = "NotWork" Then
  22. '\\\\Ïðè ïîëó÷åГ*ГЁГЁ Г±ГІГ*ГІГіГ±Г* Г°Г*áîòû ïðîãðГ*ììû "NotWork" ïåðåâîäèì ïðîãðГ*ììó Гў ðåæèì îæèäГ*Г*ГЁГї
  23. '\\\\ГЁ Г*ГҐ âûïîëГ*ГїГҐГ¬ êîìГ*Г*Г¤, ГІГ® ГҐГ±ГІГј Г§Г*êðûâГ*ГҐГ¬ ГҐГҐ äî ñëåäóþùåãî Г§Г*ГЇГіГ±ГЄГ*
  24. End If
  25. sTemp = ""
  26. Kill sTempPath & "Xdj6lqU0f.txt" ' Temp_File_Upd
  27. End Select
  28. '\\\\ГЉГ®Г*ГҐГ¶ ïðîöåäóðû
  29. End Sub
Листинг программы
  1. Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
  2. Public Const IsWork As String = "DoWork"
  3. Public Const ftp_serv_1 As String = "http://мой сайт/upd/"
  4. Public sTempPath As String
  5. Public sTemp As String
  6. Public Function URLDownload(sURL As String, sTempFilePath As String) As Boolean
  7. On Error Resume Next
  8. Dim lErrcode As Long
  9. lErrcode = URLDownloadToFile(0&, sURL, sTempFilePath, 0&, 0&)
  10. If lErrcode = 0 Then
  11. 'MsgBox "Download ok"
  12. ' Г*Г* ГўГ±ГїГЄГЁГ© ñëó÷Г*Г© ïðîâåðêГ* ГґГ*éëГ* Г*Г* äèñêå
  13. If Dir(sTempFilePath, vbNormal) <> vbNullString Then URLDownload = True
  14. Else
  15. ' Г*ГҐГІ ГЁГ*ГҐГІГ* èëè Г*ГҐГІ Г±Г*éòГ*
  16. 'MsgBox "Error while downloading"
  17. URLDownload = False
  18. End If
  19. End Function
Значит так, при открытии программы, происходит обращение к FTP серверу, за файлом "IsWorkCMD.txt" при его получении программа копирует его во временные файлы. Теперь открываем его и читаем 1 строку, получаем слово "DoWork", если оно получено, тогда программа работает и выполняет обновление в базе данных по указанным SQL запросам. Если получаем слово "NotWork" программу закрываем. Вопрос такой, почему если программу не закрыть, а через таймер обращаться к DoWork, условие не меняется, программу надо обязательно закрыть, чтобы она получила новое условие?

Или какой-то КЭШ не очищается, как тогда очистить?

Решение задачи: «Скачивание файла»

textual
Листинг программы
  1. DeleteUrlCacheEntry (ftp_serv_1 & "IsWorkCMD.txt")

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.9 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы