  | 
	
		
	
	
		RegExpr - Кодировка. Нужна помощь. - Вопросы и ответы, обсуждения - Ваши вопросы по Pascal/Delphi только в данном разделе | 
	 
	 
	
	
	
	
	
	
	
	
	
	
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            13.06.2012, 14:48
            
            
         | 
        
             
            #1
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Разведчик  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 04.11.2011  
                
                
                
                 Сообщений: 2
                   
 Популярность: 220  
                  
	 Сказал(а) спасибо: 0  
	
		
			Поблагодарили 1 раз в 1 сообщении
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                RegExpr - Кодировка. Нужна помощь.
             
             
            
        
        
        
            
               
    У меня возникла проблема с кодировкой в выражении RegExpr. 
Мне нужно вытянуть имя например "example". 
Пример:
 
	Код: 
	S:=idHTTP1.Get('http://site.com/');
Reg.Expression:='<div class="name" value="Ваше имя:">(.*?)</div>'; 
              // <div class="name" value="Ваше имя:">example</div>
if Reg.Exec(S) then Label1.Caption:=Reg.Match[1];
 Например у сайта кодировка UTF8, при поиске данной строки он ее не находит, из-за того, что в строке имеются русский символы. 
Т.е вместо "Ваше имя" он видит крякозябры, а не "Ваше имя".
 
Конечно можно сделать так:
 
	Код: 
	S:=idHTTP1.Get('http://site.com/');
Reg.Expression:='<div class="name" value="(.?*)">(.*?)</div>'; 
              // <div class="name" value="Ваше имя:">example</div>
if Reg.Exec(S) then Label1.Caption:=Reg.Match[2];
 Он выводит имя "example", но строка может повторяться несколько раз. 
Т.е:
 
	Код: 
	S:=idHTTP1.Get('http://site.com/');
Reg.Expression:='<div class="name" value="(.?*)">(.*?)</div>'; 
              // <div class="name" value="Ваше Имя">example</div>
if Reg.Exec(S) then Label1.Caption:=Reg.Match[2];
Reg.Expression:='<div class="name" value="(.?*)">(.*?)</div>'; 
              // <div class="name" value="Ваша Фамилия:">apple</div>
if Reg.Exec(S) then Label2.Caption:=Reg.Match[2];
 Получается, что он ищет одну и туже строку, и выведет самую 1 строку в оба label'a. 
Label1.Caption  = example 
Label 2.Caption  = example
 
Поэтому в переменной "value" написать "Ваше имя" или "Ваша Фамилия" регулярным выражением не получится. 
Поэтому надо задать как-то кодировку словам "Ваше имя" и "Ваша Фамилия". Иначе будет искать крякозябры этих слов, которых там нету.
     
          
        
        
        
        
        
        
            
             ________________  
                -=DangerousSs=- 
             
        
        
        
        
        
            
                 
                
                    
                        Последний раз редактировалось DangerousSs; 13.06.2012 в 16:39.
                    
                    
                
             
        
        
      | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            13.06.2012, 19:33
            
            
         | 
        
             
            #2
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Лейтенант-командор  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 12.08.2010  
                
                
                
                 Сообщений: 727
                   
 Популярность: 30569  
 Золото Zhyk.Ru: 1     
                  
	 Сказал(а) спасибо: 57  
	
		
			
				Поблагодарили 645 раз(а) в 386 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: RegExpr - Кодировка. Нужна помощь.
             
             
            
        
        
        
            
               
    1) Регулярки  ЗЛО
2)  UTF8Decode({тут ответ сервера в string}) превращает кракозябры в русские символы   
3) Регулярки  ЗЛО
4) Регулярки  ЗЛО
5) Регулярки  ЗЛО
6) Регулярки  ЗЛО
...
n) Регулярки  ЗЛО
     
         
        
        
        
        
        
        
            
             ________________  
                Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов  Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
  
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270. 
Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию. 
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy. 
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.
             
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            13.06.2012, 21:23
            
            
         | 
        
             
            #3
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Разведчик  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 04.11.2011  
                
                
                
                 Сообщений: 2
                   
 Популярность: 220  
                  
	 Сказал(а) спасибо: 0  
	
		
			Поблагодарили 1 раз в 1 сообщении
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: RegExpr - Кодировка. Нужна помощь.
             
             
            
        
        
        
        
        
        
        
        
        
            
             ________________  
                -=DangerousSs=- 
             
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            13.06.2012, 21:28
            
            
         | 
        
             
            #4
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Рыцарь  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 12.04.2009  
                
                
                
                 Сообщений: 394
                   
 Популярность: 47903  
                  
	 Сказал(а) спасибо: 515  
	
		
			
				Поблагодарили 1,124 раз(а) в 430 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: RegExpr - Кодировка. Нужна помощь.
             
             
            
        
        
        
            
               
    Советую воспользоваться возможностями класса TEncoding.
     
         
        
        
        
        
        
        
            
             ________________  
                 Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
  
В любом из нас спит гений. И с каждым днем все крепче.  
Запомните раз и навсегда:= 'Помочь' <> 'Сделайте за меня'; 
 Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). 
             
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            13.06.2012, 22:19
            
            
         | 
        
             
            #5
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Разведчик  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 04.11.2011  
                
                
                
                 Сообщений: 2
                   
 Популярность: 220  
                  
	 Сказал(а) спасибо: 0  
	
		
			Поблагодарили 1 раз в 1 сообщении
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: RegExpr - Кодировка. Нужна помощь.
             
             
            
        
        
        
        
        
        
        
        
        
            
             ________________  
                -=DangerousSs=- 
             
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            13.06.2012, 23:36
            
            
         | 
        
             
            #6
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Лейтенант-командор  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 12.08.2010  
                
                
                
                 Сообщений: 727
                   
 Популярность: 30569  
 Золото Zhyk.Ru: 1     
                  
	 Сказал(а) спасибо: 57  
	
		
			
				Поблагодарили 645 раз(а) в 386 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: RegExpr - Кодировка. Нужна помощь.
             
             
            
        
        
        
        
        
        
        
        
        
            
             ________________  
                Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов  Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
  
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270. 
Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию. 
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy. 
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.
             
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            14.06.2012, 09:21
            
            
         | 
        
             
            #7
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Разведчик  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 04.11.2011  
                
                
                
                 Сообщений: 2
                   
 Популярность: 220  
                  
	 Сказал(а) спасибо: 0  
	
		
			Поблагодарили 1 раз в 1 сообщении
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: RegExpr - Кодировка. Нужна помощь.
             
             
            
        
        
        
            
               
    
  
        
        
          
                
                
                  
                        
                          | 
                        
                        Цитата: | 
                        
                          | 
                   
                 
                 | 
                
                 | 
                
                
                
                 | 
                
                
                
                 | 
           
         
        
         | 
   
 
Не, что-то не помогло, но за то решил проблему по-другому. Но спасибо и на этом.
 
	Код: 
	S:=idHTTP1.Get('http://site.com/');
chr:=UTF8Encode('Ваше имя:');
Reg.Expression:='<div class="name" value="'+chr+'">(.*?)</div>'; 
                                  // <div class="name" value="Ваше имя:">example</div>
if Reg.Exec(S) then Label1.Caption:=Reg.Match[1];
 
     
         
        
        
        
        
        
        
            
             ________________  
                -=DangerousSs=- 
             
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            14.06.2012, 09:24
            
            
         | 
        
             
            #8
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Лейтенант-командор  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 12.08.2010  
                
                
                
                 Сообщений: 727
                   
 Популярность: 30569  
 Золото Zhyk.Ru: 1     
                  
	 Сказал(а) спасибо: 57  
	
		
			
				Поблагодарили 645 раз(а) в 386 сообщениях
			
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: RegExpr - Кодировка. Нужна помощь.
             
             
            
        
        
        
        
        
        
        
        
        
            
             ________________  
                Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов  Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
  
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270. 
Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию. 
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy. 
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.
             
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
	
	
		
	
	
    
        
            
             
            14.06.2012, 09:32
            
            
         | 
        
             
            #9
            
         | 
    
 
    
    
  
    | 
    
     | 
     
  
    | 
    
     | 
    
    
     | 
   
  
    
        Разведчик  
     | 
     
 
    
      
  
            
    
      
    
            
                 Регистрация: 04.11.2011  
                
                
                
                 Сообщений: 2
                   
 Популярность: 220  
                  
	 Сказал(а) спасибо: 0  
	
		
			Поблагодарили 1 раз в 1 сообщении
		
	 
     
 
             
                
               
                
       
                  
     | 
    
    
    
        
        
            
            
                 
                Re: RegExpr - Кодировка. Нужна помощь.
             
             
            
        
        
        
        
        
        
        
        
        
            
             ________________  
                -=DangerousSs=- 
             
        
        
        
        
     | 
 
    | 
        
        
        
        
         
     | 
    
    
    
        
        
        
        
        
        
        
        
        
        
            
        
        
        
     | 
 
 
 
  
	 
	
		 
	 
 
 
	
		
	
	
	
	
	
		
	
		 
		Ваши права в разделе
	 | 
 
	
		
		Вы не можете создавать новые темы 
		Вы не можете отвечать в темах 
		Вы не можете прикреплять вложения 
		Вы не можете редактировать свои сообщения 
		 
		
		
		
		
		HTML код Выкл. 
		 
		
	  | 
 
 
	 | 
	
		
	 | 
 
 
 
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 16:27. 
		 
	 
 
 | 
  |