Как получить файл из интернета и правильно прочитать е ? (+)

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
DDK
Обычный пользователь
Обычный пользователь
 
Сообщения: 80
Зарегистрирован: 10.11.2004 (Ср) 17:55
Откуда: Moscow ct.

Как получить файл из интернета и правильно прочитать е ? (+)

Сообщение DDK » 10.11.2004 (Ср) 18:05

Нужно получить html файл из сети. Вайл содержит ЯваСкрипт и собственно переменную, значение которой мне нужно. Мой план действий: открыть этот хтмл файл и прочесть его. Затем найти строку (в принцыпе строку я знаю) с этой переменной, прочесть её в VB переменную (ну и дальше использовать). Так вот банальный вопрос: КАК ЭТО ВОПЛОТИТЬ В ЖИЗНЬ ? :lol: Причём желательно сохранять получаемую страницу не на харде, а в оперативке (так как он мне нужен то только на время чтения из него строки). Нужные позиции в полученной строке то я уж сам смогу найти. Заранее спасибо !

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 10.11.2004 (Ср) 18:56

Изображение

DDK
Обычный пользователь
Обычный пользователь
 
Сообщения: 80
Зарегистрирован: 10.11.2004 (Ср) 17:55
Откуда: Moscow ct.

Сообщение DDK » 10.11.2004 (Ср) 19:16

Мдя... понял я конечно из приведённого там кода мало, туп я, как дуб, извиняюсь за это... :oops: Но продолжи пжалста этот код для меня, что бы я получил переменную со строкой номер (допустим) 5 в скачаном файле.... Я знаю, что наглею, но УМОЛЯЮ! :oops:

Aleksej
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 191
Зарегистрирован: 03.06.2003 (Вт) 9:58

Сообщение Aleksej » 11.11.2004 (Чт) 9:24

Попробуй так:
Project->References->Microsoft XML version 2.0
Код: Выделить всё
Private Function GetInfo() As Boolean
Dim strWebPage As String
Dim strRequest As String

strWebPage = "http://www.xxxxxxxxxxx.htm"

On Error GoTo Label1
objHTTP.open "GET", strWebPage, False
objHTTP.send

If objHTTP.Status <> "200" Then
    GetInfo = False
    Exit Function
End If

strRequest = objHTTP.responseText
GetInfo = True
Exit Function

Label1:
GetInfo = False
End Function


strRequest содержит HTML.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 11.11.2004 (Чт) 9:33

А MSXML-то тут при чём? Может, ты Internet Transfer Control имел в виду?
Изображение

DDK
Обычный пользователь
Обычный пользователь
 
Сообщения: 80
Зарегистрирован: 10.11.2004 (Ср) 17:55
Откуда: Moscow ct.

Сообщение DDK » 11.11.2004 (Чт) 16:25

ЕСТЬ КОНТАКТ ! Нашёл очень простые и понятные корешки для себя ! http://bbs.vbstreets.ru/viewtopic.php?p ... 8b20c96401 Всем СПАСИБО за внимание ! Ждите, скора можт ещё будет куча вопросов :))
Яндекс - найдётся всё. Google - найдёт всё, что не нашёл яндекс.

DDK
Обычный пользователь
Обычный пользователь
 
Сообщения: 80
Зарегистрирован: 10.11.2004 (Ср) 17:55
Откуда: Moscow ct.

Сообщение DDK » 11.11.2004 (Чт) 16:33

Код: Выделить всё
Private Sub Command1_Click()
Dim Data As Variant
Dim data_str As String

Data = Inet.OpenURL("http://kovcheg.apeha.ru/info.html?user=100116177", icString)

data_str = CStr(Data)

RichTextBox1.Text = data_str
End Sub


ЗЫ: ПРОСТО ИДЕАЛЬНЫЙ ВАРИАНТ !!!!! :D

DDK
Обычный пользователь
Обычный пользователь
 
Сообщения: 80
Зарегистрирован: 10.11.2004 (Ср) 17:55
Откуда: Moscow ct.

Сообщение DDK » 11.11.2004 (Чт) 16:39

А вот теперь ещё вопрос: я думаю, отображать то этот код нигде и не надо мне. А как найти в пременной такого рода (DATA) кусок текста по допустим началу ? Ну типа как в обычном текстовике (блокноте) ?! Т.е. я нахожу эту часть текста (кода) в переменной data_str, и читаю нужный мне кусок текста от начала найденого, до конца, но захватив ещё пару символов после найденного. Т.е. допустим нашёл я имя переменной в этом тексте, и я заранее знаю скока мне ещё нужно прочесть символов от первого символа найденного имени переменной до значения найденой переменной... Понятен вопрос ?
Яндекс - найдётся всё. Google - найдёт всё, что не нашёл яндекс.

DDK
Обычный пользователь
Обычный пользователь
 
Сообщения: 80
Зарегистрирован: 10.11.2004 (Ср) 17:55
Откуда: Moscow ct.

Сообщение DDK » 11.11.2004 (Чт) 17:16

Хотя пожалуй упрощу вопрос: Как в переменной прочитать определённую инфу, зная номер строки и позицию начала и конца ? Меня смущает то, что надо одновременно задать и номер строки и позиции... В учебниках такого нет :(.
Яндекс - найдётся всё. Google - найдёт всё, что не нашёл яндекс.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 11.11.2004 (Чт) 19:02

Код: Выделить всё
Private Sub Form_Load()
Dim str As String
Dim res As String
Dim spos As Long
'Положение начала текста
Dim START As Long
'Положение конца текста
Dim FINISH As Long
'Номер строки, в которой интересующее значение
Dim STR_NUMBER As Long
Dim i As Long
str = "gggggg" & vbCrLf & "dasdsaa" & vbCrLf & "fsaeqweqeqeq" & vbCrLf & "secret=2" '(например)

STR_NUMBER = 3
START = 7
FINISH = 8

For i = 1 To STR_NUMBER
    spos = InStr(spos + 1, str, vbCrLf)
Next i

res = Mid$(str, spos + 2 + START, FINISH - START)
MsgBox res
'Должно получиться "2" в сообщении :)
End Sub

DDK
Обычный пользователь
Обычный пользователь
 
Сообщения: 80
Зарегистрирован: 10.11.2004 (Ср) 17:55
Откуда: Moscow ct.

Сообщение DDK » 11.11.2004 (Чт) 19:43

Огромное пасибки ! Долго разбирался, но всё же понял всё ! :))
Яндекс - найдётся всё. Google - найдёт всё, что не нашёл яндекс.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 11.11.2004 (Чт) 20:06

Да несложный код, вроде бы :)

Всегда пожалуйста! :)

DDK
Обычный пользователь
Обычный пользователь
 
Сообщения: 80
Зарегистрирован: 10.11.2004 (Ср) 17:55
Откуда: Moscow ct.

Сообщение DDK » 11.11.2004 (Чт) 20:25

Amed
Всё же, что то ты напутал... что то не так с определением строки ! попробуй воспроизвести мой код. Создай тока окно Рич-Текста, кнопку и добавь ITC c с именем Inet. Увидишь, что позиции в строке он определяет нормально, но дальше 1 строки он не продвигается !!!
Код: Выделить всё
Private Sub Command2_Click()

Dim Data As Variant

Data = Inet.OpenURL("http://kovcheg.apeha.ru/info.html?user=100116177", icString)

Dim data_str As Variant
data_str = CVar(Data)

RichTextBox1.Text = data_str

Dim res As String
Dim spos As Long
'Ïîëîæåíèå íà÷àëà òåêñòà
Dim START As Long
'Ïîëîæåíèå êîíöà òåêñòà
Dim FINISH As Long
'Íîìåð ñòðîêè, â êîòîðîé èíòåðåñóþùåå çíà÷åíèå
Dim STR_NUMBER As Long
Dim i As Long
Dim str As String
str = data_str

STR_NUMBER = 23
START = 1
FINISH = 14

For i = 1 To STR_NUMBER
    spos = InStr(spos + 1, str, vbCrLf)
Next i

res = Mid$(str, spos + 2 + START, FINISH - START)
MsgBox res
'Äîëæíî ïîëó÷èòüñÿ "2" â ñîîáùåíèè :)
End Sub


Мне кажется, что чёто ты напутал в блоке
Код: Выделить всё
For i = 1 To STR_NUMBER
    spos = InStr(spos + 1, str, vbCrLf)
Next i


...............

DDK
Обычный пользователь
Обычный пользователь
 
Сообщения: 80
Зарегистрирован: 10.11.2004 (Ср) 17:55
Откуда: Moscow ct.

Сообщение DDK » 11.11.2004 (Чт) 20:52

А точнее не напутал, а просто он не подходит к моей пременной...
Исправлено:
А точнее меня вот это пугает:

Mid$(str, spos + 2 + START, FINISH - START)

DDK
Обычный пользователь
Обычный пользователь
 
Сообщения: 80
Зарегистрирован: 10.11.2004 (Ср) 17:55
Откуда: Moscow ct.

Сообщение DDK » 12.11.2004 (Пт) 17:58

Алёёёё... Есть кто живой то ???
Яндекс - найдётся всё. Google - найдёт всё, что не нашёл яндекс.

DDK
Обычный пользователь
Обычный пользователь
 
Сообщения: 80
Зарегистрирован: 10.11.2004 (Ср) 17:55
Откуда: Moscow ct.

Сообщение DDK » 13.11.2004 (Сб) 14:51

Ладно... уже нашёл другой способ находить нужное положение каретки (spos)...
Яндекс - найдётся всё. Google - найдёт всё, что не нашёл яндекс.


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

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

Сейчас этот форум просматривают: AhrefsBot, Google-бот, Majestic-12 [Bot] и гости: 168

    TopList  
cron