elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [batch] Sacando la letra del DNI
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [batch] Sacando la letra del DNI  (Leído 3,616 veces)
Hekaly

Desconectado Desconectado

Mensajes: 85



Ver Perfil WWW
[batch] Sacando la letra del DNI
« en: 25 Febrero 2011, 13:57 pm »

Buenas a todos.

Hoy me aburría un ratito y me he puesto hacer una aplicación sencillita, en este caso un script que te averigua la letra del DNI dándole el número.

Aquí os dejo el código.

Código
  1. @echo off
  2.  
  3. cd \ & cls
  4. color a
  5. :: Por comtecknet
  6.  
  7. title Sacar letra de DNI basandose en el numero
  8.  
  9.  
  10. setlocal enabledelayedexpansion
  11.  
  12. :inicio
  13.  
  14. rem ----------------------------
  15. rem - Declaracion de variables -
  16. rem ----------------------------
  17.  
  18. set valor=23
  19.  
  20. rem ---------------------------------------------
  21. rem - Dividiendo el numero introducido entre 23 -
  22. rem ---------------------------------------------
  23.  
  24.  
  25. cls
  26. set /p "numero=Introduce el numero de tu DNI (Sin letra): "
  27. set /a "resultado=%numero%%%valor%"
  28.  
  29. rem ------------------------------------------------------------
  30. rem - Comprobando que letra corresponde por cada resto posible -
  31. rem ------------------------------------------------------------
  32.  
  33.  
  34. if !resultado! EQU 0 (set resultado=T & call :resultado)
  35. if !resultado! EQU 1 (set resultado=R & call :resultado)
  36. if !resultado! EQU 2 (set resultado=W & call :resultado)
  37. if !resultado! EQU 3 (set resultado=A & call :resultado)
  38. if !resultado! EQU 4 (set resultado=G & call :resultado)
  39. if !resultado! EQU 5 (set resultado=M & call :resultado)
  40. if !resultado! EQU 6 (set resultado=Y & call :resultado)
  41. if !resultado! EQU 7 (set resultado=F & call :resultado)
  42. if !resultado! EQU 8 (set resultado=P & call :resultado)
  43. if !resultado! EQU 9 (set resultado=D & call :resultado)
  44. if !resultado! EQU 10 (set resultado=X & call :resultado)
  45. if !resultado! EQU 11 (set resultado=B & call :resultado)
  46. if !resultado! EQU 12 (set resultado=N & call :resultado)
  47. if !resultado! EQU 13 (set resultado=J & call :resultado)
  48. if !resultado! EQU 14 (set resultado=Z & call :resultado)
  49. if !resultado! EQU 15 (set resultado=S & call :resultado)
  50. if !resultado! EQU 16 (set resultado=Q & call :resultado)
  51. if !resultado! EQU 17 (set resultado=V & call :resultado)
  52. if !resultado! EQU 18 (set resultado=H & call :resultado)
  53. if !resultado! EQU 19 (set resultado=L & call :resultado)
  54. if !resultado! EQU 20 (set resultado=C & call :resultado)
  55. if !resultado! EQU 21 (set resultado=K & call :resultado)
  56. if !resultado! EQU 22 (set resultado=E & call :resultado)
  57.  
  58. rem --------------------------------------------------
  59. rem - Mostrando el resultado: Numero y letra del DNI -
  60. rem --------------------------------------------------
  61.  
  62. :resultado
  63.  
  64. cls
  65. echo  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
  66. echo  º      Resumen        º
  67. echo  ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
  68. echo  ºNumero de DNI:       º  %numero%
  69. echo  º                     º
  70. echo  ºLetra de DNI         º  %resultado%
  71. echo  ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
  72. set /p otro="Quieres ver otro DNI [si/no]: "
  73.  
  74. if %otro% EQU si (goto inicio)
  75. if %otro% EQU no (exit)
  76.  

No creo que sea la forma más depurada de hacer este script, es de suponer que a través de un for pueda quitarme de encima todos los if.



En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: [batch] Sacando la letra del DNI
« Respuesta #1 en: 27 Febrero 2011, 23:32 pm »

Yo lo haria asi:
Código:
@echo off
setlocal enabledelayedexpansion
set v=23
set charmap=TRWAGMYFPDXBNJZSQVHLCKE
set /p "DNI=Introduce tu DNI: "
set /a "r=%DNI%%%v%"
echo NIF:%DNI%!charmap:~%r%,1!


« Última modificación: 27 Febrero 2011, 23:35 pm por Karcrack » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda sobre almacenar palabra letra a letra
.NET (C#, VB.NET, ASP)
Meyer900 5 9,918 Último mensaje 27 Septiembre 2008, 19:59 pm
por SeniorX
tomar letra de unidad en batch
Scripting
Dyehuty 4 9,231 Último mensaje 4 Febrero 2009, 17:53 pm
por Dyehuty
dividir cadena letra por letra
Scripting
morenochico 3 9,019 Último mensaje 3 Julio 2009, 18:46 pm
por leogtz
[Batch] Ayuda con If (repetir palabra, no letra) « 1 2 »
Scripting
Geormarsch 15 10,153 Último mensaje 14 Octubre 2011, 19:55 pm
por Geormarsch
[BATCH] ¿Como borrar la ultima letra de una variable?
Scripting
Meine programmen 1 6,564 Último mensaje 9 Abril 2012, 18:09 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines