Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Buscar sin tilde (https://www.clubdelphi.com/foros/showthread.php?t=16491)

joanajj 30-11-2004 12:52:51

Buscar sin tilde
 
Buenos días a todos.

Pongamos un caso.

Alguien intruduce un nombre con tilde.

Por ej. María

Surge el siguiente problema:

Voy a localizar el registro y pongo María(con la tilde) y lo encuentra sin problemas, pero si pongo Maria(sin la tilde), no lo encuentra(lo cual creo que es lógico). Habría alguna forma de que se pudiera localizar un registro independientemente de si lleva o no la tilde???


Saludos...

delphi.com.ar 30-11-2004 14:14:24

Supongo que te refieres a registros de una base de datos, de ser así sería buenísimo saber que herramientas estas utilizando. (Motor, Herramientas de Conexión....)

Saludos!

marcoszorrilla 30-11-2004 15:48:22

Si se trata de SQL, algo tan cutre como lo que sigue te puede servir:

Código Delphi [-]
   procedure TForm1.Button1Click(Sender: TObject);
   var
   s:String;
   begin
   s:='ábacos ínclitos ubérrimos decía la canción';
   s := StringReplace(s, 'á', 'a', [rfReplaceAll]);
   s := StringReplace(s, 'é', 'e', [rfReplaceAll]);
   s := StringReplace(s, 'í', 'i', [rfReplaceAll]);
   s := StringReplace(s, 'ó', 'o', [rfReplaceAll]);
   
   ShowMessage(s);
   end;

La idea sería buscar por la palabra o frase clave tal y como nos la dan es decir con tildes si las tiene:
Código SQL [-]
   Select * 
   From MiTabla
   Where LoQueSea Like sOld or Like sNew
sOld sería la palabra o frase con acentos
sNew sería la palabra o frase sin acentos.

No he puesto mayúsculas ni acentos circunflejos ni agudos.

La idea final, construir una función que quite toda tilde a cualquier frase o palabra, con lo cual ya tendríamos los 2 patrones a comparar.

Un Saludo.

Trotteres 24-02-2005 10:39:10

Yo he tenido el mismo problema y lo he solucionado haciendo una udf
la select seria algo asi
Código:

select nombre from clientes where eupper(nombre) like 'JOSE%'
Código:

José Maria
jose perez
JOSELITO GARCIA

A quien le pueda interesar lo tiene aqui
http://www.spanishwarriors.com/foro/...teres/eudf.rar

Al González 25-02-2005 05:06:31

¡Buen día a todos!


Cita:

Empezado por Trotteres
...he tenido el mismo problema y lo he solucionado haciendo una udf...

Esto me remite a la pregunta que hice en Collation Drivers para Interbase 6.0, respecto a la conveniencia de crear funciones UDFs para tales propósitos.


Seguimos en contacto.

Al González :).

wwwcad 18-06-2006 00:59:43

codigo sql
 
Aqui esta un ejemplo del codigo sql para reemplazar tildes y el caracter ñ.
Código SQL [-]
SELECT * FROM content WHERE REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE ( LOWER(title),'á','a'), 'é','e'),'í','i'),'ó','o'),'ú','u'),'ñ','n') = 'titulo';


Tambien se puede usar la funcion soundex http://dev.mysql.com/doc/refman/5.0/...functions.html aunque la consulta anterior fue suficiente para mi.

--
Carlos Devia
Colombia Diseño Web
Ibague


La franja horaria es GMT +2. Ahora son las 10:32:52.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi