comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Eliminar acentos y otros agregados de un caracter/cadena Delphi 2009

  • 0 Respuestas
  • 3127 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5388
  • Actividad:
    36.67%
  • Reputación 31
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« en: Febrero 24, 2010, 04:57:14 pm »
Código: Delphi
  1. // Descompone un caracter en 2 partes y retorna solo el caracter, quitando acentos y otros posibles agregados.
  2.  
  3. function extractSimbolFromMultiByteChar(Text: PAnsiChar): Char;
  4. var
  5.   Buffer: Char;
  6.   Size: Integer;
  7. begin
  8.   Size := MultiByteToWideChar(0,0,Text,-1,nil,0);
  9.   if (Size > 0) then
  10.   begin
  11.     MultiByteToWideChar(0 ,MB_COMPOSITE , Text,-1, @Buffer, Size);
  12.     result:=Buffer;
  13.   end;
  14. end;

Código: Delphi
  1. //Recorre una cadena caracter a caracter, descomponiendolo y retornando solo el caracter limpio.
  2.  
  3. function clearMultiByteChar(Text: String): String;
  4. var
  5.   i: Integer;
  6. begin
  7.   result:='';
  8.   for I := 1 to Length(Text) do
  9.     Result:=Result+extractSimbolFromMultiByteChar(PAnsiChar(AnsiString(text[i])));
  10. end;

Modo de uso:

clearMultiByteChar('Este es el mejor día del año');

Retorno:

Este es el mejor dia del ano


Nótese que la "ñ" por ser un caracter compuesto tambien es descompuesto y separado en "n" + "´", por lo tanto el retorno es solo "n".

El objetivo principal de esta funcion no es el de representar texto en pantalla, si no ser una herramienta para comparaciones y otros tratamientos de texto.

De todos modos, si alguien la quisiera usar para procesar texto para ser mostrado en pantalla, no seria dificil modificar la funcion para que deje las "ñ" intactas.




« Última modificación: Abril 15, 2013, 11:25:04 pm por Expermicid »


 

¿Te gustó el post? COMPARTILO!



[Sintaxis general de Delphi] By: Geek Lord Venezuela [R00t] Team

Iniciado por ANTRAX

Respuestas: 0
Vistas: 1983
Último mensaje Febrero 24, 2010, 04:35:15 pm
por ANTRAX
1er troyano en Delphi By: Geek Lord Venezuela [R00t] Team

Iniciado por ANTRAX

Respuestas: 0
Vistas: 3255
Último mensaje Febrero 24, 2010, 04:34:48 pm
por ANTRAX
[Delphi] Creacion de un Server Builder con recursos

Iniciado por BigBear

Respuestas: 1
Vistas: 1410
Último mensaje Marzo 09, 2015, 07:56:20 pm
por Flemon
[Delphi] Project Arsenal X 0.2 (Regalo de navidad)

Iniciado por BigBear

Respuestas: 2
Vistas: 2575
Último mensaje Diciembre 28, 2015, 10:27:44 am
por BigBear
[Delphi] Creacion de un Troyano de conexion inversa

Iniciado por BigBear

Respuestas: 4
Vistas: 3334
Último mensaje Mayo 05, 2017, 09:10:55 am
por _inicio_cerrarsesión