Unit para Limpar os caracteres
unit LimparCaracteres; interface function TrocaCaracterEspecial(aTexto: string; aLimExt: boolean): string; implementation uses SysUtils; function TrocaCaracterEspecial(aTexto: string; aLimExt: boolean): string; const // Lista de caracteres especiais xCarEsp: array [1 .. 38] of String = ('á', 'à', 'ã', 'â', 'ä', 'Á', 'À', 'Ã', 'Â', 'Ä', 'é', 'è', 'É', 'È', 'í', 'ì', 'Í', 'Ì', 'ó', 'ò', 'ö', 'õ', 'ô', 'Ó', 'Ò', 'Ö', 'Õ', 'Ô', 'ú', 'ù', 'ü', 'Ú', 'Ù', 'Ü', 'ç', 'Ç', 'ñ', 'Ñ'); // Lista de caracteres para troca xCarTro: array [1 .. 38] of String = ('a', 'a', 'a', 'a', 'a', 'A', 'A', 'A', 'A', 'A', 'e', 'e', 'E', 'E', 'i', 'i', 'I', 'I', 'o', 'o', 'o', 'o', 'o', 'O', 'O', 'O', 'O', 'O', 'u', 'u', 'u', 'u', 'u', 'u', 'c', 'C', 'n', 'N'); // Lista de Caracteres Extras xCarExt: array [1 .. 48] of string = ('<', '>', '!', '@', '#', '$', '%', '¨', '&', '*', '(', ')', '_', '+', '=', '{', '}', '[', ']', '?', ';', ':', ',', '|', '*', '"', '~', '^', '´', '`', '¨', 'æ', 'Æ', 'ø', '£', 'Ø', 'ƒ', 'ª', 'º', '¿', '®', '½', '¼', 'ß', 'µ', 'þ', 'ý', 'Ý'); var xTexto: string; i: Integer; begin xTexto := aTexto; for i := 1 to 38 do xTexto := StringReplace(xTexto, xCarEsp[i], xCarTro[i], [rfreplaceall]); // De acordo com o parâmetro aLimExt, elimina caracteres extras. if (aLimExt) then for i := 1 to 48 do xTexto := StringReplace(xTexto, xCarExt[i], '', [rfreplaceall]); Result := xTexto; end; end.
Chamada da função
TrocaCaracterEspecial(STRING, true)