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
if TryStrToInt(Copy(NIF,1,Length(NIF)-1),Numero) then
Result:= Uppercase(Copy(NIF,Length(NIF),1)) = LetraNIF(Numero);
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');