Страница: 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 =и всё заработало!