Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] Как качать файлы с интернета на Visual Basic 6? (http://forum.oszone.net/showthread.php?t=123879)

Alex.sys 23-11-2008 22:18 961330

[решено] Как качать файлы с интернета на Visual Basic 6?
 
Здраствуйте, дорогие форумчане. У меня возник вопрос. Как у среде програмирования Visual Basic 6 можно создать приминивную качалку. Тоесть Textbox1 - URL, Textbox2 - путь хранения файла, Command1 - "скачать", Label1 - счетчик в байтах. Вот пожалуй і всё. В самого на это дело не хватает мозгов, прошу вашей помощи.

Durson 23-11-2008 23:00 961373

Сомневаюсь что VB 6 может с чем то подобным справиться.

Alex.sys 23-11-2008 23:26 961408

есть пример создания такого приложения, только он в среде пятого бейса.

Durson 23-11-2008 23:36 961418

Ой, поэксперементируй с компонентами, я VB на эту винду не устанавливал, так что щас не могу сказать какие точно компоненты надо использовать, посмотри есть ли там компонент от IE или что то подобное. Вообще лучше для таких целей использовать С++ к примеру Borland C++ Builder или MS Visual C++ с помощью библиотеки MFC.

Alex.sys 23-11-2008 23:50 961432

Да мне друзья тоже говорят что надо использовать типа Microsoft Visual Studio к примеру, а вот предподаватель)))))))))) по программированию говорит что надо сделать это задание именно в Microsoft Visual Basic 6. Я сам в шоке как тут можно это сделать. Да вот весь интерес в примере создания приложения такого типа в Visual Basic 5. Как туда такого можно было запихать я незнаю. Короче нада програмку эту сделать както. Приложения относящееся к интернету ещё не писал...(((((((((. Помогите программеры...

Durson 24-11-2008 00:17 961453

Цитата:

Цитата Alex.sys
Да мне друзья тоже говорят что надо использовать типа Microsoft Visual Studio к примеру, а вот предподаватель)))))))))) по программированию говорит что надо сделать это задание именно в Microsoft Visual Basic 6. »

Да за такие задания сделать с этим преподавателем надо ... Джае говорить не стану говорить что. Ищи в компонентах Internet Explorer потом в его свойствах покапайся, может что и придумаеш. :)

Alex.sys 24-11-2008 00:22 961458

Спасибо, сейчас что то придумаю :)

Durson 24-11-2008 00:24 961462

Кстатии можеш выложить, исходник из этой прораммы сделанной на VB5?

Alex.sys 24-11-2008 00:32 961469

Исходника самого нет. - Только листинг программы в книге

Durson 24-11-2008 00:34 961471

Так сделай скрин шот в чём проблема? :)

Alex.sys 24-11-2008 00:38 961476

книга не в электронном варианте :dont-know

Durson 24-11-2008 00:41 961480

Да ну, а я сразу и не понял.

Admiral 24-11-2008 01:04 961503

Alex.sys доброй ночи.
Примитивную, что называется прямо из коробки(кроме установленного VB6 ничего не надо) можно организовать применив компонент Microsoft Internet Transfer Control 6.0. По умолчанию он не присутствует на палитре компонентов, так что необходимо его добавить (размещен в ActiveX компоненте msinet.ocx, на тот случай если его не будет в списке добавляемых компонентов).
Далее, бросаем этот компонент на форму добавляем два TextBox, одну кнопку CommandButton и три лейблы (в одной в свойстве Caption пишем Откуда, во второй Куда, третья будет отображать статус) Label в перёд коддить.
Вот примеры
http://msdn.microsoft.com/en-us/libr...95(VS.60).aspx
http://www.vbnet.ru/forum/show.aspx?id=176637
вот небольшой микс
читать дальше »
Код:

Dim DownloadWorking As Boolean
Private Sub Command1_Click()
Call Downloads
End Sub
Public Function Downloads()
If DownloadWorking = False Then
    DownloadWorking = True
    Dim b() As Byte
    Form1.Inet1.Protocol = icHTTP
    Form1.Inet1.URL = Text1.Text
    b() = Form1.Inet1.OpenURL(Form1.Inet1.URL, icByteArray)
    FileNumber = FreeFile()
    Open Text2.Text For Binary Access Write As #FileNumber
    Put #FileNumber, , b()
    Close #FileNumber
    DownloadWorking = False
End If
End Function
Private Sub Inet1_StateChanged(ByVal State As Integer)
Label3.Caption = GetState(State)
End Sub
Private Function GetState(s As Integer) As String
Select Case s
  Case 0
      GetState = "No state information is available."
 
  Case 1
      GetState = "Looking up the IP address for the remote server."
 
  Case 2
      GetState = "Found the IP address for the remote server."
 
  Case 3
      GetState = "Connecting to the remote server."
 
  Case 4
      GetState = "Connected to the remote server."
 
  Case 5
      GetState = "Requesting information from the remote server."
 
  Case 6
      GetState = "The request was sent successfully to the remote server."
 
  Case 7
      GetState = "Receiving a response from the remote server."
 
  Case 8
      GetState = "The response was received successfully from the " & _
        "remote server."
 
  Case 9
      GetState = "Disconnecting from the remote server."
 
  Case 10
      GetState = "Disconnected from the remote server."
 
  Case 11
      GetState = "An error has occurred while communicating with the " & _
        "remote server."
 
  Case 12
      GetState = "The request was completed, all data has been received."
 
  Case Else
      GetState = "Unknown state: " & FormatNumber(State, 0)
 
  End Select
 
End Function

Указание скачанного размера файла не реализовано, в примере на msdn там указанно как.

И ещё, VB входит в Visual Studio и противопоставить их нереально, а то и безграмотно. Возможно, друзья имели ввиду Visual C++.
Durson, не все возможности VB6 были исчерпаны, а в новых ОС - MS будет избавляется от поддержки приложений написанных на VB6, тем самым агитируя переход на .NET.
C++ IMHO очень громоздкий для таких целей, если не требуется рекордная скорость приложения (не путать со скоростью скачивания). А использования MFC ещё и отяжелит приложение.
Про компоненты IE мышление в правильном направлении. :)

Alex.sys 24-11-2008 01:20 961514

Спасибо большое. Вобще респект :yahoo:

Admiral 24-11-2008 01:29 961525

Alex.sys, рад что смог помочь. :) Хотелось бы узнать, если можно, и какая была реакция препода.

Durson 25-11-2008 11:39 962945

Цитата:

Цитата Admiral
Про компоненты IE мышление в правильном направлении. »

Спасибо знаем :)
Цитата:

Цитата Admiral
Хотелось бы узнать, если можно, и какая была реакция препода. »

Наверное глаза на лоб полезли, иной реакции не у одного программиста не может быть :biggrin:


Время: 21:47.

Время: 21:47.
© OSzone.net 2001-