как загрузить Web-страницу в стринговую перременную.

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Dimka_M
Начинающий
Начинающий
 
Сообщения: 1
Зарегистрирован: 05.07.2003 (Сб) 21:52

как загрузить Web-страницу в стринговую перременную.

Сообщение Dimka_M » 05.07.2003 (Сб) 22:19

Т.е. каким образом можно загрузить веб-страницу с адресом в стринговой переменной в другую стринговую переменную . Я хочу написать программуленку которая будет брать данные из интернет сайта в виде HTML затем отфильтровывать нужные цифры ... и сохранять например в mdb,.... Заранее благодарен всем ответившим..

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 06.07.2003 (Вс) 8:54

Можно попробовать так:
Код: Выделить всё
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
Dim strFileName As String
Dim strFileContent As String
Dim nFreeFile As Integer
Dim nFileLenght As Integer
Public Function DownloadFile(URL As String, LocalFilename As String) As Boolean
    Dim lngRetVal As Long
    lngRetVal = URLDownloadToFile(0, URL, LocalFilename, 0, 0)
    If lngRetVal = 0 Then DownloadFile = True
End Function
Private Sub Form_Load()
    strfilename="C:\blablabla.htm" 'задаём файл для записи на диск
    DownloadFile "http://www.blablabla.com/blablabla.htm", strfilename 'загружаем страницу из Инета
    nFreeFile = FreeFile
    Open strFileName For Input As nFreeFile 'открываем загруженный файл
    nFileLenght = FileLen(strFileName) 'определяем длину файла
    strFileContent = Input(nFileLenght, #nFreeFile) 'читаем данные из файла...
    txtFile.Text = strFileContent '... и выводим их в ТекстБокс.

Close 'закрываем файл

End Sub
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 07.07.2003 (Пн) 8:46

Парсить HTML дело неблагодарное.
Лучше используй объектную модель IE. Вот пример, извлекающий курсы валют из инета:
Код: Выделить всё
Public Function GetInetCBRRates(ByVal CurrencyID As String, Optional ByVal RateDate) As Currency
Dim inet As Object, itbl As Object, U As String
Dim curID As String, curCode As String, curName As String, curK As Long, curRate As Currency
Dim R As Long, C As Long, Z As String, fFind As Boolean
Const URL As String = "http://www.cbr.ru/currency_base/D_print.asp?date_req=#D#/#M#/#Y#"
Const READYSTATE_UNINITIALIZED As Long = 0&
Const READYSTATE_LOADING As Long = 1&
Const READYSTATE_LOADED As Long = 2&
Const READYSTATE_INTERACTIVE As Long = 3&
Const READYSTATE_COMPLETE As Long = 4&
If IsMissing(RateDate) Then RateDate = Now Else RateDate = CDate(RateDate)
U = URL
U = Replace(U, "#D#", Format$(RateDate, "DD"))
U = Replace(U, "#M#", Format$(RateDate, "MM"))
U = Replace(U, "#Y#", Format$(RateDate, "YYYY"))
Set inet = CreateObject("InternetExplorer.Application")
inet.Navigate U
Do Until inet.ReadyState = READYSTATE_COMPLETE
DoEvents
Loop
Set itbl = inet.Document.All.Tags("TABLE").Item(2)
For R = 1 To itbl.Rows.Length - 1
  For C = 1 To itbl.Rows(R).Cells.Length
    Z = Trim$(itbl.Rows(R).Cells(C - 1).InnerText)
    Select Case C
      Case 1
        curID = Z
      Case 2
        curCode = Z
      Case 3
        Z = Replace(Z, " ", "")
        Z = Replace(Z, ",", ".")
        curK = CLng(Z)
        If curK = 0 Then curK = 1
      Case 4
        curName = Z
      Case 5
        Z = Replace(Z, " ", "")
        Z = Replace(Z, ",", ".")
        curRate = CCur(Z)
    End Select
    If C = 5 Then
      If CurrencyID = curID Then fFind = True
      If UCase$(CurrencyID) = UCase$(curCode) Then fFind = True
    End If
    If fFind Then Exit For
  Next C
  If fFind Then Exit For
Next R
Set itbl = Nothing
inet.Quit
Set inet = Nothing
If fFind Then GetInetCBRRates = curRate / curK
End Function
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 21

    TopList