Ver Mensaje Individual
  #11  
Antiguo 21-10-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Lo siguiente me ha confundido antes:


Cita:
Empezado por joi
Necesito sacarle los puntos y el guion es decir debe quedar como 12345126
En ese caso no precisas solamente sacarle los puntos y el guión, sino además también las letras. Si esto es así, la función que propuse antes no serviría, puesto que sacaría del RUT los puntos y los guiones, pero no así las letras. Propongo, pues, el siguiente cambio, que sí conseguiría quitar los puntos, los guiones y las letras del número RUT de marras:

Código Delphi [-]
function ParsearNumeroRUT(const RUT: string) : string;
 var
   s: string;
   i: integer;
 begin
   s := RUT; // Recogemos el número RUT
   // Fuera cualquier coincidencia de un punto.
   s := StringReplace(s, '.', '', [rfReplaceAll]);
   // Fuera cualquier coincidencia de un guión.
   s := StringReplace(s, '-', '', [rfReplaceAll]);
   // Fuera las letras del resultado
   for i := 1 to Length(s) do
     if (s[i] in ['0'..'9']) then
       Result := Result + s[i];
 end;
Sin embargo... lo que propone Casimiro me parece lo lógico, pues que al cabo se trataría solamente de quedarnos con los números del número RUT, de tal modo que la función de más arriba podría simplificarse del modo que propone Casimiro:

Código Delphi [-]
 function CasimiroParsearNumeroRUT(const RUT: string) : string;
 var
   s: string;
   i: integer;
 begin
   s := RUT;
   for i := 1 to Length(s) do
     if s[i] in ['0'..'9'] then
       Result := Result + s[i];
 end;
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita