pesquisar mais de uma sub-string

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

carlos_dornelas
Usuário Nível 3
Usuário Nível 3
Mensagens: 400
Registrado em: 25 Ago 2004 21:54

pesquisar mais de uma sub-string

Mensagem por carlos_dornelas »

Caros,

Como faço para pesquisar mais de uma sub-string dentro de uma string maior, por exemplo:

-pesquisar os termos "faço", "maior" e "dentro" de uma só vez e localizar o registro abaixo:

"Como faço para pesquisar mais de uma sub-string dentro de uma string maior"

Estou sem idéia aqui. Se alguém puder ajudar, fico muito grato.

Antonio Carlos
Curitiba
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

pesquisar mais de uma sub-string

Mensagem por Jairo Maia »

Olá Carlos,

Veja se ajuda:

Código: Selecionar todos

REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850

Function Main()

 Local cVar, cVar1, cVar2, cVar3, cMsg
 HB_SETCODEPAGE('PT850')
 HB_LANGSELECT('PT')

 Clear Screen

 // Se pretende usar Case Sensitive, remova a função Uppe()
 cVar := Uppe( "Como faço para pesquisar mais de uma sub-string dentro de uma string maior?" )
 cVar1 := Uppe( "faço" )
 cVar2 := Uppe( "dentro" )
 cVar3 := Uppe( "maior" )

 If ( cVar1 $ cVar ) .And. ( cVar2 $ cVar ) .And. ( cVar3 $ CvAR )
  cMsg := "A variável: " + cVar + ";;"
  cMsg += "Contém as palavras: FAÇO, DENTRO e MAIOR"
  Alert( cMsg )
 Endi

Return Nil
Para usar com Banco de dados, a idéia seria a seguinte:

Código: Selecionar todos

REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850

Function Main()
 Local cVar, cVar1, cVar2, cVar3, cMsg, nOpc

 HB_SETCODEPAGE('PT850')
 HB_LANGSELECT('PT')

 Clear Screen

 cVar1 := Uppe( "string1" )
 cVar2 := Uppe( "string2" )
 cVar3 := Uppe( "string3" )

 SELECT "Banco_Dados"
 SET INDEX TO "Indice/ordem"
 GO TOP

 While !Eof()
  cVar := Uppe( Nome_do_Campo )
  If ( cVar1 $ cVar ) .And. ( cVar2 $ cVar ) .And. ( cVar3 $ CvAR )
   cMsg := "A variável: " + cVar + ";;"
   cMsg += "Contém as palavras: &cVar1., &cVar2. e &cVar3."
   nOpc := ALERT( cMsg, {"Proxima","Encerrar"})
   IF nOpc != 1
    Exit
   Endi
  Endi

  Skip

 Endd

Return Nil
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
carlos_dornelas
Usuário Nível 3
Usuário Nível 3
Mensagens: 400
Registrado em: 25 Ago 2004 21:54

pesquisar mais de uma sub-string

Mensagem por carlos_dornelas »

Valeu Jairo, tem hora que dá aquele branco! Acho que estou com excesso de programas na cabeça!

Antonio Carlos
Responder