Ver Mensaje Individual
  #9  
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,

Si el número RUT es parecido al DNI español lo propuesto por roman puede no funcionar como se espera. Me explico. Un RUT válido puede ser: "12.345.126-K", pero, en caso de que este también lo fuera: "124.345.126-K" el código de más arriba daría problemas. Yo optaría por algo así, so pena de que pueda mejorarse no poco lo que propongo:

Código Delphi [-]
 function ParsearNumeroRUT(const RUT: string) : string;
 resourcestring
   rsExcep = 'El número RUT: "%s" no es correcto.';
 begin
   Result := RUT; // Recogemos el número RUT en Result
   // Reemplazamos cualquier coincidencia de un punto.
   Result := StringReplace(Result, '.', '', [rfReplaceAll]);
   // Reemplazamos cualquier coincidencia de un guión.
   Result := StringReplace(Result, '-', '', [rfReplaceAll]);
   // Si el resultado "mide" más de diez caracteres...
   if Length(Result) >= 10 then
   begin
     // Comprobamos que estos no contengan letras
     if StrToIntDef(LeftStr(Result, 10), -1) = -1 then
       // Y si contiene letras informamos del problema
       raise Exception.Create(Format(rsExcep, [RUT]));
   end;
 end;
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita