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

acentos en buscas

Estas en el tema de acentos en buscas en el foro de ASP Clásico en Foros del Web. Hola a todos. yo estoy haciendo un buscador de personas por nombre,yo en la base de datos tengo nombres con acentos y si el usuario ...
  #1 (permalink)  
Antiguo 27/06/2002, 10:42
 
Fecha de Ingreso: abril-2002
Mensajes: 35
Antigüedad: 22 años, 1 mes
Puntos: 0
acentos en buscas

Hola a todos.
yo estoy haciendo un buscador de personas por nombre,yo en la base de datos tengo nombres con acentos y si el usuario no pone acento no lo encuentra.Me preguntaba si hay alguna manera de arreglar esto.
gracias
  #2 (permalink)  
Antiguo 27/06/2002, 10:44
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 5 meses
Puntos: 17
Re: acentos en buscas

SELECT * FROM tabla WHERE campo regexp "valor"

Teóricamente con MySQL funciona.

Joe Tawers,
<a href="http://www.ilimit.com/towers">http://www.ilimit.com/towers</a>
  #3 (permalink)  
Antiguo 27/06/2002, 11:24
 
Fecha de Ingreso: mayo-2002
Mensajes: 197
Antigüedad: 22 años, 1 mes
Puntos: 0
Re: acentos en buscas

Buenas, aqui te dejo un copy&amp;paste de una respuesta de JGG en este mismo foro:

------------------------------------------

Hola,
Creo que esta función te puede servir:

&lt;%
Function AccIns(Str)
Dim CurLtr
For x = 1 To Len(Str)
CurLtr = Mid(Str, x, 1)
Select Case CurLtr
Case &quot;a&quot;, &quot;à&quot;, &quot;á&quot;
AccIns = AccIns &amp; &quot;[aàá]&quot;
Case &quot;e&quot;, &quot;é&quot;, &quot;è&quot;
AccIns = AccIns &amp; &quot;[eéè]&quot;
Case &quot;i&quot;, &quot;ì&quot;, &quot;í&quot;
AccIns = AccIns &amp; &quot;[iìí]&quot;
Case &quot;o&quot;, &quot;ò&quot;, &quot;ó&quot;
AccIns = AccIns &amp; &quot;[oòó]&quot;
Case &quot;u&quot;, &quot;ù&quot;, &quot;ú&quot;
AccIns = AccIns &amp; &quot;[uùú]&quot;
Case &quot;n&quot;, &quot;ñ&quot;, &quot;Ñ&quot;
AccIns = AccIns &amp; &quot;[nñÑ]&quot;
Case Else
AccIns = AccIns &amp; CurLtr
End Select
Next
End Function
%&gt;

Asignas la variable
strlocalidad = Request.form(&quot;localidad&quot;)

en la consulta llamas a la función:
SQL = &quot;SELECT * FROM Localidades WHERE Localidad LIKE '%&quot; &amp; AccIns(strlocalidad) &amp; &quot;%'&quot;

quedándote la consulta
SELECT * FROM Localidades WHERE Localidad LIKE 'Esp[aàá][nñÑ][aàá]'

De esta manera ya no te tienes que preocupar por el tema de las tildes.

Un saludo!!

-----------------------------------------

decirte que funciona a las mil maravillas,
saludos.
  #4 (permalink)  
Antiguo 27/06/2002, 11:33
 
Fecha de Ingreso: mayo-2002
Mensajes: 197
Antigüedad: 22 años, 1 mes
Puntos: 0
Re: acentos en buscas

Tambien aprovecho para poner aqui una duda que tengo que tambien tiene relacion con el tema de acentos.

Mediante el siguiente codigo resalto los resultados obtenidos tras realizar una busqueda en mi buscador, lo que resalto son las coincidencias de las palabras a buscar con las mismas palabras en el resultado de la busqueda.

&lt;%
producto=RS(&quot;producto&quot;)
palabras=split(palabra,&quot; &quot;,-1,1)
cantidad_palabras=UBound(palabras)
for c = 0 to cantidad_palabras
clave=InStr(1,RS(&quot;producto&quot;),palabras(c) ,1)
lon=len(palabras(c))
cadena=mid(RS(&quot;producto&quot;),clave,lon)
producto=Replace(producto,palabras(c),&quot;&lt;b& gt;&quot;&amp;cadena&amp;&quot;&lt;/b&gt;&quot;,1,-1,1)
next
%&gt;

Funciona bien, menos cuando la palabra del resultado lleva acento, que aunque la encuentra, no la resalta por lo coincidir con la palabra a buscar. (Si la palabra a buscar la introduces con acento entonces si la resalta.)

Si alguien sabe como solucionar el tema de que resalte las palabras con acentos, le estaria muy pero que muy agradecido.

Gracias y un saludo.
  #5 (permalink)  
Antiguo 25/06/2003, 19:46
 
Fecha de Ingreso: mayo-2003
Mensajes: 18
Antigüedad: 21 años
Puntos: 0
Choroy, ya probaste con:

clave=InStr(1,RS("producto"),AccIns(palabras(c)),1 )

es decir con tu misma función de búsqueda, para ver si funciona otra idea que puedo darte es que extraigas la palabra del resultado y la compares con la del criterio de búsqueda, si son disitintas verificar si la palabra de resultado lleva el acento, si lo lleva cambiar la palabra del criterio de búsqueda por la coincidencia en el resultado y luego poner el codigo para resaltar el resultado. Como puedes obtener la palabra coincidente del resultado? de la siguente manera me imagino que debe funcionar aun no lo he probado:

resultadoRs = Rs("Producto")
criterio = Request.Form("palabra")
longcri = len(criterio)
coincidencia=Instr(1,resultadoRs,criterio,1)
criterio=Mid(coincidencia,resultadoRs,longcri).

Recuerda que solo son ideas, porque la verdad esta como dificil resaltar las palabras que no coinciden porque la comparación la haces letra por letra...

Espero te sirva de ayuda!!
Saludes
__________________
Téc. Jason Castillo
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 21:13.