Страница: 1 |
Страница: 1 |
Вопрос: Перехват искомого текста в потоке
Добавлено: 12.05.11 16:46
Автор вопроса:
WHorse
Доброго времени суток!
Моя задача: сделать web-запрос по заданному адресу и вводимому пользователем значению. Пустить полученную страницу в поток и перехватить ключевые фразы "ничего не найдено", либо "результаты поиска:", затем выполнить соответствующие действия.
Пересмотрел несколько конструкций, подсмотрел типовые примеры в электронных учебниках - так и не смог применить их к своей задаче.
Привожу "голый" код без перехвата ошибок:
Dim VIN_URL As Net.HttpWebRequest = Net.HttpWebRequest.Create("http://www.vugone.info/base/find/?vin=" & TextBox1.Text)
Dim VIN_Response As Net.HttpWebResponse = VIN_URL.GetResponse()
Dim VIN_Stream As New IO.StreamReader(VIN_Response.GetResponseStream, System.Text.Encoding.GetEncoding("UTF-8"))
Dim VIN_Line As String = VIN_Stream.ReadLine
Dim VIN_Result As New System.Text.RegularExpressions.Regex("^*Ничего не найдено*$")
TextBox2.Text = VIN_Line
If (VIN_Result.IsMatch(VIN_Line).ToString) Then
MsgBox("OK")
Else
MsgBox("Nothing")
End If
End Sub
Подскажите пожалуйста, в чем моя ошибка (возможно следует задать построчный перебор и рассматривать каждую строку) и как можно перехватить искомый участок текста и сравнить его с шаблоном (либо пустить в условие ЕСЛИ... ТО). Спасибо!
Ответы
Всего ответов: 2
Номер ответа: 1
Автор ответа: EROS
Вопросов: 58
Ответов: 4255
Профиль | | #1
Добавлено: 12.05.11 23:59
Первое что бросилось в глаза:
Ты читаешь из всего ответа только первую строку. а первая строка там будет тег {html}
Тебе надо получить всю страницу ответа целиком и уже там искать нужные фразы
Достаточно часто ошибки бывают в самом регулярном выражении.
IsMatch возвращает булеву величину, поэтому вызов ToString не только не обязателен но и является абсолютно ненужным
Номер ответа: 2
Автор ответа: WHorse
Вопросов: 5
Ответов: 7
Профиль | | #2
Добавлено: 20.05.11 17:22
Спасибо! Изменил ReadLine на ReadToEnd; исправил лишние символы в регулярном выражении; убрал ToString =и всё заработало!