Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 | 3 |

 

  Вопрос: Вопрос по поводу обработки html тегов Добавлено: 31.10.06 01:49  

Автор вопроса:  Invise
Есть html файл, нужно чтобы программа достала оттуда текст в теге <STRONG>, названия ссылок и путь ссылки.
Как я понимаю нужно обрабатывать текст кусками и искать нужный тег.
Определить, что проверяемый кусок - название раздел она может по тегу <STRONG>, а ссылку по <a href>, соответсвенно. Мне кажется это не очень хороший подход.
Как можно такой поиск и сортировку организовать наиболее рациональным образом.
А то в процесе путаюсь уже который раз...
Подскажите, может кто пробовал :-(

Ответить

  Ответы Всего ответов: 38  

Номер ответа: 1
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #1 Добавлено: 31.10.06 02:07
Используй регулярные выражения.

Ответить

Номер ответа: 2
Автор ответа:
 Invise



Вопросов: 3
Ответов: 3
 Профиль | | #2 Добавлено: 31.10.06 02:17
ну вобщем нужно чтоб программа если находила такой то тег делала такую то процедуру, а если находила другой, другую процедуру...
Что-то типа этого)

Ответить

Номер ответа: 3
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #3
Добавлено: 31.10.06 09:10
Ты не html-editor пишешь? :)

Ответить

Номер ответа: 4
Автор ответа:
 Sur



ICQ: 1249088 

Вопросов: 10
Ответов: 304
 Web-сайт: sur.hotbox.ru/
 Профиль | | #4
Добавлено: 31.10.06 13:54
на www.planet-source-code.com поищи какой-нибудь
HTML parser, выбери лучший и доработай.

Вот этот показался удобным:
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=26877&lngWId=1

Ответить

Номер ответа: 5
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #5 Добавлено: 31.10.06 21:15
InStr, Mid... уже не в моде?

Ответить

Номер ответа: 6
Автор ответа:
 Invise



Вопросов: 3
Ответов: 3
 Профиль | | #6 Добавлено: 01.11.06 10:09
Да я так и сделал. Хотел по другому.

Все, сейчас разобрался. Всем спасибо

Ответить

Номер ответа: 7
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #7
Добавлено: 01.11.06 15:03
Вообще для начала - это все хорошо.
Но вот я сейчас пишу преобразователь кода VB в С++, там страшно много прходится применять логических операций и так виртуозно проверять строки, что пользоваться одними mid и instr, len... - не вариант. Нужны готовые алгоритмы.
Может кто-нибудь преуспел в этом деле?

Ответить

Номер ответа: 8
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #8
Добавлено: 01.11.06 15:19
Регекспы уже советовали :)

Ответить

Номер ответа: 9
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #9
Добавлено: 01.11.06 15:41
Нет, а что это?

Ответить

Номер ответа: 10
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #10 Добавлено: 02.11.06 02:05
Регекспы - это регулярные выражения! :-)))
Именно о них и говорил Brand в первом ответе!!

Если текст небольшой и выполнить работу надо быстро и разово, то InStr, Mid можно обойтись..
Но по сути это достаточно серьезные тормоза, регэкспы работаю на 3 (условно) порядка быстрее.
Так что если приложение критично к быстродействию, то ТОЛЬКО регэкспы!
Инфы в инете по ним более, чем достаточно. Даже на нашем сайте есть статья Павла посвященная им..

Ответить

Номер ответа: 11
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #11
Добавлено: 02.11.06 15:19
Но по сути это достаточно серьезные тормоза, регэкспы работаю на 3 (условно) порядка быстрее.
Так что если приложение критично к быстродействию, то ТОЛЬКО регэкспы!

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

Ответить

Номер ответа: 12
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #12 Добавлено: 02.11.06 19:09
Я не знаю внутренней реализации регэкспов, но могу утверждать только одно, что работают они гораздо быстрее.. причем в десятки раз быстрее нежели искать вхождения через InStr, Mid и т.д.. Проверял лично... Особенно становится заметна разница на больших объемах текста..

Ответить

Номер ответа: 13
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #13
Добавлено: 02.11.06 21:00
Ты как-то неправильно ищешь. Регекспы не могут быть быстрее банального поиска подстроки и, тем более, взятия подстроки в принципе.

Ответить

Номер ответа: 14
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #14 Добавлено: 02.11.06 22:25
Ты как-то неправильно ищешь.

Возможно.. мой алгоритм поиска не притендует на гениальность... все как обычно - цикл, positionStart, positionEnd и т.д, ничего выдающегося..

Регекспы не могут быть быстрее банального поиска подстроки и, тем более, взятия подстроки в принципе


В конечном итоге Регэкспы предоставляют тебе коллекцию найденных строк разбитых по именованным группам. А теперь попробуй написать алгорим (с применением InStr, Mid .. ) Который:

1. Найдет вхождение одной подстроки в другую
2. Выдернет ее от туда
3. Определит к какой группе она(подстрока) принадлежит
4. Поместит в соответствующую коллекцию или массив

другими словами алгоритм, имитирующий работу RegEx в полном объеме ХОТЯБЫ на примере 1 функции.

Public Function Matches(ByVal input As String) As System.Text.RegularExpressions.MatchCollection
     Member of: System.Text.RegularExpressions.Regex
Summary:
Searches the specified input string for all occurrences of a regular expression.

Parameters:
input: The string to search for a match.

Return Values:
A System.Text.RegularExpressions.MatchCollection of the System.Text.RegularExpressions.Match objects found by the search.


А вот после этого продолжим с тобой дисскуссию на тему, что работает быстрее...

Ответить

Номер ответа: 15
Автор ответа:
 avdey



ICQ: 219571279 

Вопросов: 34
Ответов: 486
 Профиль | | #15 Добавлено: 03.11.06 11:52
Но вот я сейчас пишу преобразователь кода VB в С++,

http://www.free-ware.ru/284/free/vbto_converter_1_0/download/

Ответить

Страница: 1 | 2 | 3 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам