Ver Mensaje Individual
  #40  
Antiguo 28-04-2015
Delphitest Delphitest is offline
Miembro
 
Registrado: sep 2006
Ubicación: Salamanca-España
Posts: 249
Reputación: 18
Delphitest Va por buen camino
Muchas gracias por el empujoncillo

En base a lo que comentais he hecho esta función:

Código Delphi [-]
Function TForm1.LimpiarCarNormaSEPAXML(texto: String; longitud: Integer): String;
var i : integer;
begin
// Quitar los acentos de las vocales y caracteres raros
texto := StringReplace(texto,'á','a',[rfReplaceAll]);
texto := StringReplace(texto,'Á','A',[rfReplaceAll]);
texto := StringReplace(texto,'é','e',[rfReplaceAll]);
texto := StringReplace(texto,'É','E',[rfReplaceAll]);
texto := StringReplace(texto,'í','i',[rfReplaceAll]);
texto := StringReplace(texto,'Í','I',[rfReplaceAll]);
texto := StringReplace(texto,'ó','o',[rfReplaceAll]);
texto := StringReplace(texto,'Ó','O',[rfReplaceAll]);
texto := StringReplace(texto,'ú','u',[rfReplaceAll]);
texto := StringReplace(texto,'Ú','U',[rfReplaceAll]);
texto := StringReplace(texto,'Ö','O',[rfReplaceAll]);
texto := StringReplace(texto,'ö','o',[rfReplaceAll]);
texto := StringReplace(texto,'Ñ','N',[rfReplaceAll]);
texto := StringReplace(texto,'ñ','n',[rfReplaceAll]);
texto := StringReplace(texto,'Ç','C',[rfReplaceAll]);
texto := StringReplace(texto,'ç','c',[rfReplaceAll]);

// Recorrer el texto para eliminar los caracteres no permitidos
for i := 1 to Length(texto) do
begin
  if not(Ord(texto[i]) in [65..90,97..122,48..57,47,45,63,58,40,41,46,44,39,43,32]) then
     texto[i] := '¤'
end;
texto := StringReplace(texto,'¤','',[rfReplaceAll, rfIgnoreCase]);

// Convertir a mayúsculas
texto := ansiuppercase(Texto);

// Codificar a Utf8
Result := Utf8Encode(Trim(Copy(texto, 1, longitud)));
end;

Lo de convertir a mayúsculas no se si es necesario o no pero por si acaso...

Y luego me queda la duda de las vocales acentuadas, tipo á é ... he revisado la documentación y no dice que sean caracteres válidos pero tampoco los incluye como ç y ñ para que no lo sean.

He abierto algunos de los ficheros de recibos que suelo enviar al banco y veo que hay muchos nombres que incluyen acentos y se han procesado correctamente.
__________________
Mi proyecto paso a paso (Parte I)
Responder Con Cita