Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Validación de nif (https://www.clubdelphi.com/foros/showthread.php?t=32883)

Acker 20-06-2006 12:17:22

Validación de nif
 
Buenos dias a tod@s!!!

He estado echando un vistazo por los hilos ya abiertos, y no encuentro nada que pueda ayudarme en este tema. Asi que aqui lo planteo con la esperanza de que podais ayudarme, y éste hilo sirva para el futuro.

A ver, lo que quiero saber es si alguién puede poner un código de una función a la que pasando un string, devuelva verdadero si esa cadena corresponde con un Nif correcto, y falso en caso contrario.

Un saludo y gracias

Neftali [Germán.Estévez] 20-06-2006 12:31:34

He buscado en los trucos del ClubDelphi y no está (raro, por cierto), así que lo he añadido; Aquí lo tienes.

Acker 20-06-2006 12:38:35

Gracias Neftali, esto me podrá ser muy útil en otra ocasión, pero parece que no me expliqué bien en mi pregunta.

Yo lo que quiero saber es si una cadena de caraceteres está formada por:
8 números
y una letra

De momento no me importa calcular la letra del nif.

Un saludo

seoane 20-06-2006 13:35:22

En la seccion de trucos, ya añadi al truco de German en los comentarios una funcion para validar el nif. Pero si lo que quieres es solo comprobar su longitud, y letra:

Código Delphi [-]
function ValidarNif(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:= NIF[9] in ['A'..'Z','a'..'z'];
  end;
end;

Por ejemplo:
Código Delphi [-]
  if ValidarNif('12345678Z') then
    ShowMessage('Correcto')
  else
    ShowMessage('Incorrecto');

Atencion: Como se pedia, esta funcion solo comprueba la longitud y que la ultima letra este dentro del rango A..Z. Para validar el nif por completo ir a la seccion de trucos.

Acker 20-06-2006 13:44:03

Gracias Seoane, es justo lo que necesitaba.

Por mi parte puede darse por cerrado el hilo

Una vez más GRACIAS


La franja horaria es GMT +2. Ahora son las 09:40:58.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi