Скачивание файла - VB
Формулировка задачи:
Добрый день! Пишем значит обновление для утилиты по работе с БД. Такой вопрос возник, для начала с кодом ознакомьтесь:
Значит так, при открытии программы, происходит обращение к FTP серверу, за файлом "IsWorkCMD.txt" при его получении программа копирует его во временные файлы. Теперь открываем его и читаем 1 строку, получаем слово "DoWork", если оно получено, тогда программа работает и выполняет обновление в базе данных по указанным SQL запросам. Если получаем слово "NotWork" программу закрываем.
Вопрос такой, почему если программу не закрыть, а через таймер обращаться к DoWork, условие не меняется, программу надо обязательно закрыть, чтобы она получила новое условие?
Листинг программы
- 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
- Private Sub Form_Load()
- '\\\\ГЌГ*Г·Г*ëî Г°Г*áîòû ïðîãðГ*ììû
- DoWork
- '\\\\ГЉГ®Г*ГҐГ¶ Г°Г*áîòû ïðîãðГ*ììû
- End Sub
- Sub DoWork()
- '\\\\ГЌГ*Г·Г*ëî ïðîöåäóðû "Ïîëó÷åГ*ГЁГҐ Г±ГІГ*ГІГіГ±Г* Г°Г*áîòû ïðîãðГ*ììû"
- FileNum = FreeFile
- sTempPath = Environ("TMP")
- Select Case True
- Case URLDownload(ftp_serv_1 & "IsWorkCMD.txt", sTempPath & "Xdj6lqU0f.txt")
- Open sTempPath & "Xdj6lqU0f.txt" For Input As FreeFile
- Line Input #FileNum, sTemp
- Close #FileNum
- If sTemp = IsWork Then
- '\\\\Ïðè ïîëó÷åГ*ГЁГЁ Г±ГІГ*ГІГіГ±Г* Г°Г*áîòû ïðîãðГ*ììû "DoWork" ïåðåâîäèì ïðîãðГ*ììó Гў Г°Г*áî÷åå ñòîñòîÿГ*ГЁГҐ
- '\\\\ГЁ âûïîëГ*ГїГҐГ¬ êîìГ*Г*äû ïîëó÷åГ*Г*ûå ГЁГ§ ГґГ*éëГ* êîìГ*Г*Г¤
- MsgBox "ÏðîãðГ*ììГ* Г°Г*áîòГ*ГҐГІ! Выполняем условие по работе с базой данных."
- End If
- If sTemp = "NotWork" Then
- '\\\\Ïðè ïîëó÷åГ*ГЁГЁ Г±ГІГ*ГІГіГ±Г* Г°Г*áîòû ïðîãðГ*ììû "NotWork" ïåðåâîäèì ïðîãðГ*ììó Гў ðåæèì îæèäГ*Г*ГЁГї
- '\\\\ГЁ Г*ГҐ âûïîëГ*ГїГҐГ¬ êîìГ*Г*Г¤, ГІГ® ГҐГ±ГІГј Г§Г*êðûâГ*ГҐГ¬ ГҐГҐ äî ñëåäóþùåãî Г§Г*ГЇГіГ±ГЄГ*
- End If
- sTemp = ""
- Kill sTempPath & "Xdj6lqU0f.txt" ' Temp_File_Upd
- End Select
- '\\\\ГЉГ®Г*ГҐГ¶ ïðîöåäóðû
- End Sub
Листинг программы
- 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
- Public Const IsWork As String = "DoWork"
- Public Const ftp_serv_1 As String = "http://мой сайт/upd/"
- Public sTempPath As String
- Public sTemp As String
- Public Function URLDownload(sURL As String, sTempFilePath As String) As Boolean
- On Error Resume Next
- Dim lErrcode As Long
- lErrcode = URLDownloadToFile(0&, sURL, sTempFilePath, 0&, 0&)
- If lErrcode = 0 Then
- 'MsgBox "Download ok"
- ' Г*Г* ГўГ±ГїГЄГЁГ© ñëó÷Г*Г© ïðîâåðêГ* ГґГ*éëГ* Г*Г* äèñêå
- If Dir(sTempFilePath, vbNormal) <> vbNullString Then URLDownload = True
- Else
- ' Г*ГҐГІ ГЁГ*ГҐГІГ* èëè Г*ГҐГІ Г±Г*éòГ*
- 'MsgBox "Error while downloading"
- URLDownload = False
- End If
- End Function
Или какой-то КЭШ не очищается, как тогда очистить?
Решение задачи: «Скачивание файла»
textual
Листинг программы
- DeleteUrlCacheEntry (ftp_serv_1 & "IsWorkCMD.txt")
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д