Ver Mensaje Individual
  #2  
Antiguo 20-06-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Reputación: 24
seoane Va por buen camino
Con permiso de German voy a añadir una funcion para validar el NIF, le pasamos como parametro el documento entero incluido letras y nos devuelve TRUE si es correcto.

Código Delphi [-]
function LetraNIF(Numero: Integer): string;
begin
  Result:= copy('TRWAGMYFPDXBNJZSQVHLCKET',1 + numero mod 23,1);
end;

function EsNIFCorrecto(NIF: String): Boolean;
var
  Numero: Integer;
begin
  Result:= FALSE;
  if Length(NIF) = 9 then
  begin
    // Normal
    if TryStrToInt(Copy(NIF,1,Length(NIF)-1),Numero) then
      Result:= Uppercase(Copy(NIF,Length(NIF),1)) = LetraNIF(Numero);
    // Extranjero
    if Uppercase(Copy(NIF,1,1)) = 'X' then
      if TryStrToInt(Copy(NIF,2,Length(NIF)-1),Numero) then
        Result:= Uppercase(Copy(NIF,Length(NIF),1)) = LetraNIF(Numero);
  end;
end;

Ejemplo de uso:
Código Delphi [-]
  if EsNIFCorrecto('12345678Z') then
    ShowMessage('Correcto')
  else
    ShowMessage('Incorrecto');
Responder Con Cita