Programación General > C++ Builder

 Validar Dni

(1/2) > >>

aguilot_21:
Buenas,

Alguien me puede decir como puede validar un DNI, que los 8 primeros sean enteros y el otro una letra??

Gracias

© Jonathan ©:
Podrias tomar los caracteres en un Edit, almacenarlos en un array de char y recorrerlos con un puntero... por medio de comparaciones podrias saber si los primeros 8 son numeros y el ultimo es un caracter. Saludos :hola:

CiRRuS:
Además, recuerda que la letra va es única para cada combinación de números de 8 cifras. Mira a ver si en Internet encuentras el algoritmo que te dice cual es la letra a partir de la ristra de números.

Nos vemos :hola:

Diodo:
Hola

Puedes hacer como te dice Jhonatan y meterlo en un *char y recorrerlo, para saber si es letra o numero puedes usar la libreria ctype.h que es ansic y supongo que tambien estara en c++builder estas son las funciones que proporciona:

http://c.conclase.net/librerias/libreria.php?lib=ctype

En tu caso puedes usar isdigit o isalpha para discriminar el caracter

Otra forma seria meter los DNI en strings y compararlos directamente

un saludo  :hola:

aguilot_21:
Tengo otro problema, recorro los caracteres uno a uno mirando si es numero o no pero con el ultimo siempre me da error. Este es el codigo, a ver si me podeis ayudar:

oid __fastcall TAltaImp::Button1Click(TObject *Sender)
{
        String Numeros,Lletra;
        char c;
        bool result;
        int i;
        Numeros=(DNI->Text).SubString(1,8);
        Lletra=(DNI->Text).SubString(8,9);
        result=true;
        i=1;

while ((Numeros!=Null()&&(i<=8) && (result==true)))
        {
        DNI->Text ="DNI incorrecte";
        c=Numeros;
        result=(c>=0)||(c<=9);
        i=i+1;
        }
        if (result==true)
        {
        DNI->Text ="DNI correcto";
        }
        else
        {
        DNI->Text ="DNI incorrecto";
        }

}

Gracias

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa