Nesh Postado Junho 20, 2007 Denunciar Share Postado Junho 20, 2007 Bom galera Na verdade já tenho a busca pronta, só não consigo colocar esse sistema de quando ele achar a palavra e colocar tanto carros, CARROS, Carros em negrito.alguém tem a salvação ai?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Marcos-rj Postado Junho 21, 2007 Denunciar Share Postado Junho 21, 2007 tenta isso aqui, achei na net. não sei se funciona!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("nome") '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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Nesh
Bom galera Na verdade já tenho a busca pronta, só não consigo colocar esse sistema de quando ele achar a palavra e colocar tanto carros, CARROS, Carros em negrito.
alguém tem a salvação ai??
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.