Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-11-2005
Avatar de ariefez
ariefez ariefez is offline
Miembro
 
Registrado: sep 2005
Ubicación: Perú - Lima
Posts: 63
Poder: 19
ariefez Va por buen camino
Diacrítico

Se puede quitar el diacrítico de las letras.

Por ejemplo:
á = a
ô = o
Ä = A
Responder Con Cita
  #2  
Antiguo 17-11-2005
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Que bueno que se pueda
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #3  
Antiguo 17-11-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Código Delphi [-]
 cCadena:= LoQueSea;
 StringReplace(cCadena, 'ó', 'o', rfReplaceAll);

Supongo que quieres decir substituir un carácter por otro:
camión --> camion ?

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #4  
Antiguo 17-11-2005
Avatar de ariefez
ariefez ariefez is offline
Miembro
 
Registrado: sep 2005
Ubicación: Perú - Lima
Posts: 63
Poder: 19
ariefez Va por buen camino
algo asi seria, pero, en general no hay alguna forma de reemplazar todos, por ejemplo para pasar un string o un caracter a minusculas usaria la funcion de Delphi (Con sus limitaciones)

Código Delphi [-]
function LowerCase(const S: string): string;
var
  Ch: Char;
  L: Integer;
  Source, Dest: PChar;
begin
  L := Length(S);
  SetLength(Result, L);
  Source := Pointer(S);
  Dest := Pointer(Result);
  while L <> 0 do
  begin
    Ch := Source^;
    if (Ch >= 'A') and (Ch <= 'Z') then Inc(Ch, 32);
    Dest^ := Ch;
    Inc(Source);
    Inc(Dest);
    Dec(L);
  end;
end;
pero si vemos la funcion esta echa de forma general, osea q todo depende de una linea de codigo:

Código Delphi [-]
    if (Ch >= 'A') and (Ch <= 'Z') then Inc(Ch, 32);
no hay alguna forma de hacer una funcion q al pasar como parametro un Char este me devuelva como resultado la letra sin su diacrítico; por ejemplo:

Código Delphi [-]
function SinDiacritico(const C: Char): Char; //O algo por el estilo
begin
...
end;
 
{Llamada de la funcion}
...
C := SinDiacritico('á'); //El valor de C seria 'a'
C := SinDiacritico('ô'); //El valor de C seria 'o'
C := SinDiacritico('Û'); //El valor de C seria 'U'
...
Agradesco cualquier sugerencia, nos escribimos luego.
Responder Con Cita
  #5  
Antiguo 17-11-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

No estoy seguro de que sea lo apropiado, pero, en este Hilo Federico puede ayudarte.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #6  
Antiguo 17-11-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por jhonny
Que bueno que se pueda


Y también se pueden quitar los signos de interrogación.

// Saludos
Responder Con Cita
  #7  
Antiguo 18-11-2005
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por roman
Y también se pueden quitar los signos de interrogación.
Y tambien el Hola, el por favor, y muchas cosas mas
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #8  
Antiguo 18-11-2005
Avatar de ariefez
ariefez ariefez is offline
Miembro
 
Registrado: sep 2005
Ubicación: Perú - Lima
Posts: 63
Poder: 19
ariefez Va por buen camino
Gracias por sus respuestas era lo q estaba buscando.

Una cosa mas, al ver el hilo q pusiste, veo q no usan ninguna regla, no es tan simple como pasar a minusculas.

Una pregunta aparte: ¿como hace el SO para saber q caracter le corresponde al presionar: ´ y luego a me muestre á ?
Responder Con Cita
  #9  
Antiguo 18-11-2005
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile

¡Hola Ariefez!

Hace algunos años me hice la misma pregunta que tú (aunque con «signos de interrogación» ). Investigando en la vasta ayuda de la API de Windows —Win32.hlp—, encontré que la función MultiByteToWideChar puede utilizarse para obtener la composición de un carácter con diacrítico (Windows mantiene una relación de los caracteres diacríticos y sus posibles composiciones con diferentes letras). Para esto, hay que indicar el parámetro mb_Composite al llamar a la función.

Pero como muchas otras funciones de la API de Windows, MultiByteToWideChar resulta un poco pomposa a la hora de llamarla: sólo acepta cadenas PChar, debes darle el buffer donde guardará el resultado y ¡demanda seis parámetros! ; y por si fuera poco también descompone la letra eñe (en tilde + ene). Quizá te convenga crear una función que encapsule, controle y simplifique el uso de MultiByteToWideChar para quitar los diacríticos de una cadena en castellano, lo cual también yo hice en mi biblioteca de funciones Delphi (si quieres una copia, sólo envíame un correo).

Espero esto sea de utilidad, seguimos en contacto.

Un abrazo agudo, grave y circunflejo.

Al González.
Responder Con Cita
  #10  
Antiguo 18-11-2005
Avatar de ariefez
ariefez ariefez is offline
Miembro
 
Registrado: sep 2005
Ubicación: Perú - Lima
Posts: 63
Poder: 19
ariefez Va por buen camino
Thumbs up Basta un pequeño empujon para ir a donde sea

Gracias a todos por responder a mis dudas y especialmente a Al González era lo que en realidad estaba buscando. voy a probar la funcion y a ver q sale. Nos vemos, sera hasta la proxima.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 12:18:44.


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
Copyright 1996-2007 Club Delphi