Login: Senha: Registrar-se - Esqueci minha senha
.: Menu
Home
Artigos
Sign. dos Sonhos
Papel de Parede
Ilusões de Ótica
.: Bancos
Emoticons e Gifs
Ícones
Logos
.: Serviços
Mural de Recados
Usuários Online
Bloco de Notas
Formmail
Meu IP
.: Geradores
Gerador de Senhas
Barra de Rolagem
Recomende
Pop-up
Inverter Link
.: Canais
Apostilas
Arte/Cultura
Blog
Busca
Celular
Downloads
E-mail Grátis
Emoticons
Esportes
Filmes
Flogs
Fontes
GTA Mods
Host Grátis
Humor
Infantil
Informática
Jogos
Jogos Online
Linux
Músicas
Notícias
Offline
Redirecionadores
Sites Parceiros
Webdesigners
Webmasters
.: Na Faixa
Sobre
Contato
Recomende-nos
Termos de uso

Realce de palavras em pesquisa: utilizando Split e Replace

Enviado em 12/03/2007 - 08:48
Fonte: A A A A

A rotina é bastante simples. O exemplo a seguir procura as palavras "carro" e "rádio" em uma tabela que possui um campo denominado "DESCRICAO".

Em primeiro lugar, vamos tratar os dados recebidos do formulário:

'Codifica os dados recebidos formatando os caracteres especiais, neste caso,
'o espaço é substituído pelo sinal (+)
strProcura = Server.URLEncode(request("campo_do_formulario_postado"))
 
'Como nossa pesquisa será por "múltiplas palavras" (aqui você pode alterar ao seu gosto)
'é necessário trocar o sinal de (+) pelo (%) que é usado com o LIKE na string SQL
strProcura = replace(strProcura,"+","%")
 

Teremos com resultado: carro%radio

Agora com a string de procura tratada, vamos criar o ARRAY que conterá as palavras para "comparação" com as encontradas.

Veja que neste ponto não utilizaremos os sinais de (%), pois vamos procurar a palavra INTEIRA dentro do resultado vindo do Banco de Dados:

'Atribui o valor postado à variável string_procurada
string_procurada = request("campo_do_formulario_postado")
 
'Aqui colocamos "cada" palavra em uma posição do vetor. Veja que a função Split tem como parâmetros
'Split(string,separdor), onde o separador é o "espaço": "carro radio". Neste caso o VetorResultado conterá
' duas palavras: carro e radio
VetorResultado = Split(string_procurada," ")
 

Agora já está tudo pronto. Então vamos atribuir à variável "campo" o resultado do Recordset:

campo = rstTemp.Fields.Item("DESCRICAO").Value
 
A seguir, temos o laço For..Next que substitui o(s) valore(s) procurado(s) pelo(s) encontrado(s).
Esse laço é o responsável pelas substituições. Nele é usada a função replace que tem como parâmetros:
Replace(string_completa,palavra_procurada,palavra_substituida)
For I = 0 to Ubound(VetorResultado)
    campo = REPLACE(campo, VetorResultado(I),"<b>" & ucase(VetorResultado(I)) & "</b>",1,1,1)
Next
 

Obs: 1,1,1 no Replace é para que a palavra substituída independente da formatação, pois o Replace é "Case Sensitive".

Para mais informações, veja o detalhamento da função Replace no site da Microsoft®.

Veja que o laço é necessário para efetuar a procura de "cada" palavra contida no ARRAY. Para isso usamos a função Ubound(parametro) que conta a quantidade de elementos contido no ARRAY ou VETOR.

O funcionamento é simples, para cada passagem, a variável I é incrementada e a posição do ARRAY é lida.

Note que o importante é atribuir a variável "campo" ao Replace para que possa ser feita a atribuição; vamos dizer "recursiva".

Espero que esta pequena contribuição possa tirar a dúvida sobre as funções Replace() e Split(), e que o código acima possa ser útil em seus sistemas.

Um abraço.
Edson Melo de Souza
[email protected]

Fonte: www.linhadecodigo.com.br


Enviado por: brunohcs

Esse artigo foi visualizado 2065 vezes

Compartilhe este artigo
facebook del.icio.us rec6 digg
Recomende este artigo a um amigo


Voltar
>> Comentários
 
Related Posts Plugin for WordPress, Blogger...
Comentar
Buscar Artigos:
.: Mods de GTA
GTA SA, VC, IV
SA - Carros
IV - Carros
Mods
GTA IV
SA - Mods Cleo
.: Saúde
Calculadora de IMC
Peso Ideal
Artigos de Saúde
.: Jogos Online
Ação
Aventura
Cassino
Classicos
Colorir
Corrida
Educativos
Esporte
Estrategia
Infantil
Luta
Meninas
Nave
Tiro
Outros
Adulto
Top Jogos
.: Parceiros
Mural de Recados Grátis
Papel de Parede
Show Moto
Web Visual
.: Nossos Números
Artigos: 930
Categorias: 50
Comentarios: 1863
Usuarios: 26631
Blocos de Nota: 87
Canais: 169

website monitoring service
eXTReMe Tracker
Na Faixa.net - Todos os direitos reservados. 12/2003 - 03/2024
Leia nossos Termos de Uso - Política de Privacidade
Desenvolvido por Web Visual
Crie seu Site - Papel de Parede Grátis - Show Moto - Mural de Recados Grátis - Dicas10