Html код

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

Html код

Сообщение eldar22 » 24.04.2009 (Пт) 16:53

Есть HTML код
Код: Выделить всё
<html>
<head>
<title>Сайт с фреймом
</title>
</head>
<frameset rows="*,106" frameborder=1 bordercolor=black framespacing=0>
<frame name="frame" src="http://сайт/gates.php" noresize scrolling=auto id="website_frame" title="jgFNRtUwHy">
<frame name="site_eldP813q" src="http://site.ru/surf_frame.php" noresize scrolling=no>
</frameset> -274686065
</html>


Вопрос в одном как в TexBox вывести это значение title="jgFNRtUwHy"

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Html код

Сообщение MIT » 24.04.2009 (Пт) 16:55

RegExp!
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Re: Html код

Сообщение burik » 24.04.2009 (Пт) 17:03

Ага, regexp. Ну или split, на худой конец.
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Re: Html код

Сообщение dr.MIG » 24.04.2009 (Пт) 17:37

Или Microsoft HTML Object Library.
Salus populi suprema lex

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Re: Html код

Сообщение burik » 24.04.2009 (Пт) 17:56

Ну а если HTML код всегда этот, только меняются значения некоторых параметров (в частности title), то можно и так:
Код: Выделить всё
    ttlStart = InStr(1, code, "title=") + 7
    ttlEnd = InStr(ttlStart, code, """") - 1
    title = Mid$(code, ttlStart, ttlEnd - ttlStart + 1)
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

eldar22
Обычный пользователь
Обычный пользователь
 
Сообщения: 91
Зарегистрирован: 09.09.2008 (Вт) 18:11

Re: Html код

Сообщение eldar22 » 24.04.2009 (Пт) 19:51

Нашёл код RegEx толька для VB.Net
Как его в Visual basic перевести

Код: Выделить всё

Dim regexp As New Regex("<(.*?)>")
Dim html As String
Dim i As Integer
Dim m As MatchCollection
html = "<p>Это <a href='http://vbnet.ru'>пример</a> <b>поиска</b></p>"
m = regexp.Matches(html)
For i = 0 To m.Count - 1
    MsgBox(m.Item(i).Value)
Next


dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Re: Html код

Сообщение dr.MIG » 24.04.2009 (Пт) 20:42

Как-то так:
Код: Выделить всё
Dim regexp As New regexp
Dim html As String
Dim i As Integer
Dim m As MatchCollection
regexp.Global = True
regexp.Pattern = "<(.*?)>"
html = "<p>Это <a href='http://vbnet.ru'>пример</a> <b>поиска</b></p>"
Set m = regexp.Execute(html)
For i = 0 To m.Count - 1
    MsgBox (m.Item(i).Value)
Next


И не забыть в References подключить Microsoft VBScript Regular Expressions.
Salus populi suprema lex

eldar22
Обычный пользователь
Обычный пользователь
 
Сообщения: 91
Зарегистрирован: 09.09.2008 (Вт) 18:11

Re: Html код

Сообщение eldar22 » 24.04.2009 (Пт) 21:46

Спасибо dr.MIG
Получилось

eldar22
Обычный пользователь
Обычный пользователь
 
Сообщения: 91
Зарегистрирован: 09.09.2008 (Вт) 18:11

Re: Html код

Сообщение eldar22 » 25.04.2009 (Сб) 14:08

Есть ещё одна проблема
есть код он показывает из этого html
<p>Это <a href='http://vbnet.ru'>пример</a> <b>поиска</b></p>
вот это значение </p>
Вопрос один как сделать так что бы показывал вот это значение title="jgFNRtUwHy"
из этого html

<html>
<head>
<title>Сайт с фреймом
</title>
</head>
<frameset rows="*,106" frameborder=1 bordercolor=black framespacing=0>
<frame name="frame" src="http://сайт/gates.php" noresize scrolling=auto id="website_frame" title="jgFNRtUwHy">
<frame name="site_eldP813q" src="http://site.ru/surf_frame.php" noresize scrolling=no>
</frameset> -274686065
</html>

Код: Выделить всё
Private Sub Command1_Click()
Dim regexp As New regexp
Dim html As String
Dim i As Integer
Dim m As MatchCollection
regexp.Global = True
regexp.Pattern = "<(.*?)>"
html = RichTextBox1.Text
Set m = regexp.Execute(html)
For i = 0 To m.Count - 1
    Text1.Text = (m.Item(i).Value)
Next
End Sub

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Re: Html код

Сообщение burik » 25.04.2009 (Сб) 14:37

Нужно изменить регулярное выражение.
Вот пример (в текстовом поле text1 твой html код):
Код: Выделить всё
Private Sub Command1_Click()
Dim regexp As New regexp
Dim m As MatchCollection

    regexp.Global = True
    regexp.Pattern = "title=""(.*?)"""
   
    Set m = regexp.Execute(Text1.Text)
    MsgBox (m.Item(0).SubMatches(0))
   
End Sub


P.S. но это будет корректно работать только если в коде один раз встречается title="..."
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

eldar22
Обычный пользователь
Обычный пользователь
 
Сообщения: 91
Зарегистрирован: 09.09.2008 (Вт) 18:11

Re: Html код

Сообщение eldar22 » 25.04.2009 (Сб) 16:07

burik
Спасибо большое это то что нужно :)


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

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

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

    TopList