Programación General > C++ Builder
Validar Dni
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
[#] Página Siguiente
Ir a la versión completa