Foros del Web » Programando para Internet » ASP Clásico »

buscador complejo

Estas en el tema de buscador complejo en el foro de ASP Clásico en Foros del Web. Holas,miren tengo un buscador que busca las palabras en el título y en el mensaje.... bueno eso ya está hecho... ahora el roche es otro... ...
  #1 (permalink)  
Antiguo 16/01/2004, 02:01
Avatar de mamon  
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 1.302
Antigüedad: 22 años, 5 meses
Puntos: 3
Exclamación buscador complejo

Holas,miren tengo un buscador que busca las palabras en el título y en el mensaje.... bueno eso ya está hecho...
ahora el roche es otro... x ejemplo si la persona escribe sin tildes y yo si he puesto la tilde no encuentra (es obvio)... más allá de eso tb he hecho para q la palbra q el usuario escribió se vea en negritas en el título y en el texto, esto lo hago con un replace...

Supongamos q este es mi título: "Anímate"
y este mi mensaje: "Mira este portal y anímate"

y la persona escribió "animate"

primero q todo no lo encuentra, pero supongamos q escribió con tilde, osea anímate.. ahora si lo encuentra, pero en el título no se va a cambiar a negrita xq la persona escribió todo en minúsculas, pero en el mensaje si va a cambiar a negrita la palabra "anímate" xq esta está en minusculas....

cómo hago para q todo funcione como yo quiero, osea q encuentre aunque no haya puesto alguna tilde y cambie a negritas sin importar q uno este en mayúsculas y el otro en minúsculas?

GRACIAS DE ANTEMANO...

PD: estuve revisando otros post referente a esto, pero los "function" no me funcionan.. me sale error en la línea donde he escrito "function"

PD2:Uso MSSQL 2000
__________________
Yo si sé lo que es trabajar duro, porque lo he visto.

Última edición por mamon; 16/01/2004 a las 02:05
  #2 (permalink)  
Antiguo 16/01/2004, 10:51
 
Fecha de Ingreso: noviembre-2001
Ubicación: Montevideo
Mensajes: 506
Antigüedad: 22 años, 6 meses
Puntos: 0
Esta es una función que creo me pasaron aquí, lamentablemente no me acuerdo quien, sino ponía su nombre. Corrigen el problema de los tildes y ñ

Function AccIns(Str)
Dim CurLtr
For x = 1 To Len(Str)
CurLtr = Mid(Str, x, 1)
Select Case CurLtr
Case "a", "à", "á"
AccIns = AccIns & "[aàá]"
Case "e", "é", "è"
AccIns = AccIns & "[eéè]"
Case "i", "ì", "í"
AccIns = AccIns & "[iìí]"
Case "o", "ò", "ó"
AccIns = AccIns & "[oòó]"
Case "u", "ù", "ú"
AccIns = AccIns & "[uùú]"
Case "n", "ñ", "Ñ"
AccIns = AccIns & "[nñÑ]"
Case Else
AccIns = AccIns & CurLtr
End Select
Next
End Function
__________________
Alvaro García
  #3 (permalink)  
Antiguo 16/01/2004, 16:06
Avatar de mamon  
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 1.302
Antigüedad: 22 años, 5 meses
Puntos: 3
y cual es la palabra q el usuario escribió?

y cómo la muestro? y como cambio a negritas? GRACIAS DE ANTEMANO
__________________
Yo si sé lo que es trabajar duro, porque lo he visto.
  #4 (permalink)  
Antiguo 16/01/2004, 17:35
 
Fecha de Ingreso: noviembre-2003
Ubicación: Distrito Federal
Mensajes: 225
Antigüedad: 20 años, 7 meses
Puntos: 0
Lluvia de ideas !!!! Esta es la primer idea que me llego a la mente, a ver que tal !!!!
Primero desarrolla una funcion en donde si detectas una letra con acento o una ñ, realices una busqueda en tu base de datos con y sin acento o ñ. Esa funcion no es complicada !!! utiliza la funcion InStr que te devuelve un valor numerico si encuentra la letra que le pasaste como parametro. Esto lo tienes que hacer para todas las vocales y para la ñ. Una vez que haces eso, en una variable mantienes la original y en otra variable guardas una copia, la cual conviertes en minusculas, con LCase, despues, obtienes el resultado de tu base de datos, que por cierto hay una parte de configuracion (no recuerdo bien en donde) en el SQL en la que especificas si quieres que la consulta sea CASE SENSITIVE, deshabilitala para que no importe si esta en minusculas o mayusculas.
Despues el resultado lo guardas en otra variable y lo conviertes en minusculas con LCase, despues haces una funcion recursiva con InStr para que vaya buscando la palabra de busqueda con la palabra en la base de datos, de esa forma puedes ir obteniendo los indices en donde se encuentra la palabra. Y por ultimo utilizas esos indices para cortar la cadena e irle agregando las etiquetas de bold

Suena complicado pero es lo primero que se me ocurrio.

Espero te sirva
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:13.