![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
|||
|
|||
|
Hola:
Código sacado de trucomanía: Código:
function NIF(DNI: String): Char;
begin
Result := Copy('TRWAGMYFPDXBNJZSQVHLCKET',StrToInt(DNI) mod 23+1,1)[1];
end;
eDNI := Trim(EditDNI.Text); eNumerosDNI := Copy(eDNI,1,Length(eDNI)-1); El problema aquí es que también el usuario te puede poner letras en la parte numérica, por lo que antes deberías recorrer caracter a caracter toda la cadena y verificar que excepto el último caracter los demás son números. Suerte. |
|
#2
|
||||
|
||||
|
En lugar de recorrer toda la cadena, yo dejaría algo como:
Código mucho mas sencillo y fácil de leer... Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate Última edición por jachguate fecha: 29-05-2004 a las 21:33:06. Razón: agregar etiquetas... |
|
#3
|
||||
|
||||
|
Curioso:
La expresión StrToInt(DNI) mod 23+1 da siempre un número entre 1 y 23 y la cadena, si mis ojos cuentan bien, tiene 24 caracteres. ¿No se puede omitir la última T? Por otra parte me parece que luna ya sabía todo esto, sólo preguntó como extraer la parte del número. // Saludos Última edición por roman fecha: 29-05-2004 a las 21:36:38. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|