PDA

Ver la Versión Completa : Quitar los acentos (y otros caracteres) de una cadena


dec
07-06-2006, 20:20:11
La siguiente función elimina los acentos y otros determinados caracteres de la cadena que pasemos como parámetro. Esta función la escribió el compañero Federico (delphi.com.ar) en algún Hilo de los Foros del ClubDelphi:


function QuitarAcentos(const cadena: string) : string;
const
CA = 'ÁÉÍÓÚÀÈÌÒÙÄËÏÖÜÂÊÎÔÛáéíóúàèìòùäëïöüâêîôû';
CB = 'AEIOUAEIOUAEIOUAEIOUaeiouaeiouaeiouaeiou';
var
Ch: Char;
L, P: Integer;
Source, Dest: PChar;
begin
L := Length(cadena);
SetLength(Result, L);
Source := Pointer(cadena);
Dest := Pointer(Result);
while L <> 0 do
begin
Ch := Source^;
P := Pos(Ch, CA);
if P > 0 then
Dest^ := CB[P]
else
Dest^ := Ch;
Inc(Source);
Inc(Dest);
Dec(L);
end;
end;

radenf
29-01-2013, 00:55:38
Excelente
La he estado buscando por semanas.
Muchas gracias
Salu2