elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 06:57  


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)

+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting (Moderadores: Novlucker, Leo Gutiérrez., EleKtro H@cker)
| | |-+  [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 876 veces)
Hekaly

Desconectado Desconectado

Mensajes: 51



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

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
@echo off
 
cd \ & cls
color a
:: Por comtecknet
 
title Sacar letra de DNI basandose en el numero
 
 
setlocal enabledelayedexpansion
 
:inicio

rem ----------------------------

rem - Declaracion de variables -
rem ----------------------------
 
set valor=23

rem ---------------------------------------------

rem - Dividiendo el numero introducido entre 23 -
rem ---------------------------------------------
 
 
cls
set /p "numero=Introduce el numero de tu DNI (Sin letra): "
set /a "resultado=%numero%%%valor%"

rem ------------------------------------------------------------

rem - Comprobando que letra corresponde por cada resto posible -
rem ------------------------------------------------------------
 
 
if !resultado! EQU 0 (set resultado=T & call :resultado)
if !resultado! EQU 1 (set resultado=R & call :resultado)
if !resultado! EQU 2 (set resultado=W & call :resultado)
if !resultado! EQU 3 (set resultado=A & call :resultado)
if !resultado! EQU 4 (set resultado=G & call :resultado)
if !resultado! EQU 5 (set resultado=M & call :resultado)
if !resultado! EQU 6 (set resultado=Y & call :resultado)
if !resultado! EQU 7 (set resultado=F & call :resultado)
if !resultado! EQU 8 (set resultado=P & call :resultado)
if !resultado! EQU 9 (set resultado=D & call :resultado)
if !resultado! EQU 10 (set resultado=X & call :resultado)
if !resultado! EQU 11 (set resultado=B & call :resultado)
if !resultado! EQU 12 (set resultado=N & call :resultado)
if !resultado! EQU 13 (set resultado=J & call :resultado)
if !resultado! EQU 14 (set resultado=Z & call :resultado)
if !resultado! EQU 15 (set resultado=S & call :resultado)
if !resultado! EQU 16 (set resultado=Q & call :resultado)
if !resultado! EQU 17 (set resultado=V & call :resultado)
if !resultado! EQU 18 (set resultado=H & call :resultado)
if !resultado! EQU 19 (set resultado=L & call :resultado)
if !resultado! EQU 20 (set resultado=C & call :resultado)
if !resultado! EQU 21 (set resultado=K & call :resultado)
if !resultado! EQU 22 (set resultado=E & call :resultado)

rem --------------------------------------------------

rem - Mostrando el resultado: Numero y letra del DNI -
rem --------------------------------------------------
 
:resultado
 
cls
echo  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo  º      Resumen        º
echo  ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
echo  ºNumero de DNI:       º  %numero%
echo  º                     º
echo  ºLetra de DNI         º  %resultado%
echo  ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
echo.
set /p otro="Quieres ver otro DNI [si/no]: "
 
if %otro% EQU si (goto inicio)
if %otro% EQU no (exit)
 

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.192


Se siente observado ¬¬'


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

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 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
Meyer900 5 2,179 Último mensaje 27 Septiembre 2008, 19:59
por SeniorX
tomar letra de unidad en batch
Scripting
Dyehuty 4 3,129 Último mensaje 4 Febrero 2009, 17:53
por Dyehuty
dividir cadena letra por letra
Scripting
morenochico 3 3,164 Último mensaje 3 Julio 2009, 18:46
por Leo Gutiérrez.
[Batch] Ayuda con If (repetir palabra, no letra) « 1 2 »
Scripting
geormarsch 15 1,280 Último mensaje 14 Octubre 2011, 19:55
por geormarsch
[BATCH] ¿Como borrar la ultima letra de una variable?
Scripting
Meine programmen 1 262 Último mensaje 9 Abril 2012, 18:09
por EleKtro H@cker
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines