Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Контрол Inet (опять) Добавлено: 08.03.07 20:51  

Автор вопроса:  art
Вот какое дело, привожу код:

Private Sub Command3_Click()

If InternetCheckConnection("http://www.mail.ru/", FLAG_ICC_FORCE_CONNECTION, 0&) = 0 Then
        MsgBox "Не могу подключиться", vbInformation
        Exit Sub
    End If

strURL = "http://домен/Project1.rar"

upd2_form.Inet1.Execute strURL, "Head"

'задержка, пока запрос не выполнен
Do
    If Not upd2_form.Inet1.StillExecuting Then
        Command3.Enabled = True
        Exit Do
    End If
    DoEvents
Loop

Dim ldate As String
lLengthFile = CLng(upd2_form.Inet1.GetHeader("Content-length"))

ldate = upd2_form.Inet1.GetHeader("Last-modified")


upd2_form.Text2.Text = ldate
upd2_form.Text1.Text = lLengthFile & " байт."
upd_form.Hide
upd2_form.Show

На следующей форме:

Private Sub Command1_Click()
    Inet1.Execute strURL, "GET"
    PrBar1.Visible = True
End Sub

код события statechanged:

Private Sub Inet1_StateChanged(ByVal State As Integer)
Dim intFile As Long
   
Select Case State
   ' ... Other cases not shown.
    Case icConnecting '3
        'MsgBox "Есть связь!"
    Case icConnected '4
        'MsgBox "Соединяюсь"
    Case icDisconnecting '9
        'MsgBox "Disconnecting"
    Case icResponseCompleted ' 12
      ' Open a file to write to.
        intFile = FreeFile
        Open App.Path & "\Project1.rar" For Binary Access Write As #intFile

        ' Get the first chunk. NOTE: specify a Byte
        ' array (icByteArray) to retrieve a binary file.
        vtData = Inet1.GetChunk(1024, icByteArray)

        Do While LenB(CStr(vtData)) > 0
            Put #intFile, , vtData
            ' Get next chunk.
            vtData = Inet1.GetChunk(1024, icByteArray)
            UpdateStatus Seek(1)
        Loop
        Put #intFile, , vtData
        Close #intFile
    Case icError
        MsgBox "Произошла ошибка!", vbCritical, "Сообщение"
        Exit Sub
   End Select
End Sub

Sub UpdateStatus(lRec As Long)
Dim i As Long
    i = lRec * 100 / lLengthFile
    PrBar1.Value = i
    DoEvents
End Sub

Скачивается без проблем и процесс отображается, НО файл, который сохраняется немного больше по размеру и если это архив, то грит, что неправильный формат архива или поврежден. Вот такая фигня.

Ответить

  Ответы Всего ответов: 2  

Номер ответа: 1
Автор ответа:
 art



Вопросов: 45
Ответов: 119
 Профиль | | #1 Добавлено: 09.03.07 10:14
Ну, что никто не сталкивался?

Ответить

Номер ответа: 2
Автор ответа:
 Bonapart



ICQ: 175256 

Вопросов: 32
Ответов: 108
 Web-сайт: team16.tut.su
 Профиль | | #2
Добавлено: 09.03.07 19:18
Там служебная инфа наверно идёт.
через Hex редактор открой в начале или в конце будет

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам