Работа с файлами

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

Работа с файлами

Сообщение Mony » 29.07.2004 (Чт) 7:42

Всем привет...
Есть пара вопросов..
Как присваевать переменной код интернет страницы для далнейшей работы с ней...?
И еще - Как присвоить к перемонной текст находящийся к примеру между какимето либо html тэгами --- <title>ТЕКСТ</title>
Вот как найдя слово ТЕКСТ присвоить переменной ?

Я начинающий так что неругайти за недопонимание )
Всем спасибо

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 29.07.2004 (Чт) 9:00

А при чем тут файлы?

Если страница загружена в webbrowser, то доступ к тегам через .document.tags а к целой странице, соответственно через .document
I don't understand. Sorry.

natcap
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 234
Зарегистрирован: 25.06.2003 (Ср) 13:15
Откуда: Москва

Сообщение natcap » 29.07.2004 (Чт) 12:33

Так... вопрос конечно интересный, но пониманию не поддается, порэтому извени, объясняю как поняла...
Тебе надо работать с ШТМЛ-файлом, т.е. открыть его, получить что-то из него и т.д...
Так вот для этого есть такой компанент WebBrowser.

Чтобы его подключить и работать с ним нужны компаненты:
Код: Выделить всё
Microsoft HTML object Library
Microsoft Internet controls

Подключаешь, кидаешь на форму веббраузер.

Теперь, загрузка файла в веббраузер:
Код: Выделить всё
Form1.WebBrowser1.Navigate (adress)

далее... у Веббраузера есть события
Код: Выделить всё
WebBrowser1_DownloadComplete()
и
WebBrowser1_DocumentComplete

что первое из них, что второе не помню, но эти события означают, что документ твой загрузился.
Посде этого можешь работать сосвоим документом.

При этом если ты заведешь такую переменную:
Код: Выделить всё
Public WithEvents doc As HTMLDocument


и потом
Код: Выделить всё
Private Sub WebBrowser1_DownloadComplete()
Set doc = WebBrowser1.Document
End Sub

то сможешь со своим документом работать как с объектом, что значительно упростит жизнь.

Теперь, как получить значение тега:

Можно брать его по тегу, это будет выглядеть так:
Код: Выделить всё
doc.getElementsByTagName("имя тега")

в этом случае ты получаешь КОЛЛЕКЦИЮ тегов как взять нужный тебе - твое дело...
можно вот так
Код: Выделить всё
doc.getElementById("")
doc.getElementsByName("")

В первом случае ты берешь по ID второй по Name.

теперь как получить текст?
Если тебе нужен кусок ШТМЛ внутри твоего тега, то берешь innerHTML если чистенький текст, то innerText вот и все :)))[/code]
Медленно переезжаю с 6.0 на 2008 .... задавая тонны глупых вопросов :)

Mogavk
Новичок
Новичок
Аватара пользователя
 
Сообщения: 34
Зарегистрирован: 27.07.2004 (Вт) 20:58

Сообщение Mogavk » 29.07.2004 (Чт) 14:26

Интересный случай
From Community,For Community

Mony
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 29.07.2004 (Чт) 6:00

Сообщение Mony » 29.07.2004 (Чт) 17:51

Спасибо.. Буду пробовать

Mony
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 29.07.2004 (Чт) 6:00

Сообщение Mony » 29.07.2004 (Чт) 18:30

Страница загружается в Веббраузер

Dim Adres As String

Private Sub Command1_Click()
Adres = "http://yandex.ru/"
WebBrowser1.Navigate Adres

End Sub


А что дальше делать непонятно

natcap
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 234
Зарегистрирован: 25.06.2003 (Ср) 13:15
Откуда: Москва

Сообщение natcap » 29.07.2004 (Чт) 21:15

ты чего, издеваешься??? я же тебе все разжевала и в рот положила, заглотить только осталось!!!!

дальше пишешь

Код: Выделить всё
Private Sub WebBrowser1_DownloadComplete()
Set doc = WebBrowser1.Document
Set oNode = doc.getElementsByTagName("title")(0)
t = oNode.innerText
End Sub


получаешь в t заголовок страницы, дальше делай с ним что хочешь.

переменные не забудь анонсировать...
Public WithEvents doc As HTMLDocument
Public oNode As HTMLPhraseElement

P.S. хоть изредко пытайтесь если не думать, то читать советы ПОЛНОСТЬЮ, господа...
Медленно переезжаю с 6.0 на 2008 .... задавая тонны глупых вопросов :)

Mony
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 29.07.2004 (Чт) 6:00

Сообщение Mony » 29.07.2004 (Чт) 23:46

natcap писал(а):ты чего, издеваешься??? я же тебе все разжевала и в рот положила, заглотить только осталось!!!!

дальше пишешь

Код: Выделить всё
Private Sub WebBrowser1_DownloadComplete()
Set doc = WebBrowser1.Document
Set oNode = doc.getElementsByTagName("title")(0)
t = oNode.innerText
End Sub


получаешь в t заголовок страницы, дальше делай с ним что хочешь.

переменные не забудь анонсировать...
Public WithEvents doc As HTMLDocument
Public oNode As HTMLPhraseElement

P.S. хоть изредко пытайтесь если не думать, то читать советы ПОЛНОСТЬЮ, господа...



Спасибо...
НО
при смени адреса с яндекса на рамблер он уже ругается на
t = oNode.innerText
хотя с яндексом все работает ...

Вот код

Dim Adres As String
Dim teg As String
Public WithEvents doc As HTMLDocument
Public oNode As HTMLPhraseElement

Private Sub Command1_Click()
Adres = "http://rambler.ru/"
WebBrowser1.Navigate Adres

End Sub



Private Sub WebBrowser1_DownloadComplete()
Set doc = WebBrowser1.Document
Set oNode = doc.getElementsByTagName("title")(0)
t = oNode.innerText
Text1.Text = t
End Sub


Да и еще..если я хочу вытащить текст из тока определенных тегов к примеру на стронице много кодов br а мне нужен текст именно между <br><b>****<br><td ........... и т.д

**** - текст каторый надо присвоить переменной t и потом вставить в текстбокс


Всем спасибо

natcap
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 234
Зарегистрирован: 25.06.2003 (Ср) 13:15
Откуда: Москва

Сообщение natcap » 30.07.2004 (Пт) 11:06

писать надо было вот так на самом деле...

Код: Выделить всё
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
Set oNode = doc.getElementsByTagName("title")(0)
t = oNode.innerText
Text1.Text = t
End Sub

Private Sub WebBrowser1_DownloadComplete()
Set doc = WebBrowser1.Document
End Sub


2. Если ты найдешь комбинациию в ШТМЛ
<br><td... то можешь смело написавшего это отправить читать умные книги по ШТМЛ, чтобы фигней не страдал...

3. поплыли дальше... тег BR я бы вообще старалась не трогать - очень не хороший тег...
Если без него никуда.. то я бы пошла таким путем...
создала бы переменную

Код: Выделить всё
Public oNode As HTMLPhraseElement
Public oNode1 As HTMLPhraseElement
Public oNode2 As HTMLPhraseElement
Public NodeList As msxml2.IXMLDOMNodeList


это коллекция нодов.. тотом

Код: Выделить всё
set nodelist=doc.all


ты получишь в NodeList ВСЕ ноды документа..
потом простой перебор

Код: Выделить всё
for i=0 to nodelist.length-2
set onode=nodelist(i)
set onode1=nodelist(i+1)
if oNode.nodeName="BR" and onode1.nodename="B" then
text1.text=onode1.innerText
end if
next i


Это вариант если тебе надо взять текст внутри тега В, если просто непонятно что - между непонятно какими тегами, то
1юкинула бы на форму еще один веббраузер (невидимый и грузила бы в него ПЕРЕД загрузкой в первый пустой штмл
Код: Выделить всё
<html><head><title></title></head><body></body></html>


2. ШТМЛ интерисуемой тебя страницы в текстовую переменную

Код: Выделить всё
mText=doc.body.innerHTML


далее выдираешь при помощи mid, instr и прочих строковых операторов кусок текста между своими тегами - как - ЧИТАЙ ХЕЛПЫ, думай головой, в общем ненужное вычеркнуть :)
в переменную скажем cutText

Потом полученый выдранный кусок кидай

Код: Выделить всё
webbrowser2.document.body.innerHTML=cutText
text1.text=webbrowser2.document.body.innertext

вот вроде бы и все..
Проверяй сам - писала сразу сюда...
Медленно переезжаю с 6.0 на 2008 .... задавая тонны глупых вопросов :)


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

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

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

    TopList  
cron