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, 09:09  


Tema destacado: Únete al Grupo Steam elhacker.NET

+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting (Moderadores: Novlucker, Leo Gutiérrez., EleKtro H@cker)
| | |-+  Filtro de variable numérica
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Filtro de variable numérica  (Leído 819 veces)
q0ok

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Filtro de variable numérica
« en: 29 Mayo 2011, 02:37 »

Mi objetivo es comprobar que la variable 'variable' sólo contenga números.

Código:
::Filtro de variable numérica by q0ok
setlocal enabledelayedexpansion
:inicio
set /p "variable=Introduzca su variable: "
if not defined variable (goto:inicio)
::Hallamos la longitud de la cadena de carácteres.
set /a cont=0 & set /a sum=0
call :longitud
echo %sum%
::Comprobamos los carácteres de la variable.
:verify
for %%_ in (0 1 2 3 4 5 6 7 8 9) do (
if "!variable:~%cont%,1!" NEQ %%_ (echo WRONG) else (echo RIGHT)
)
pause>nul
set /a cont+=1
if %cont%==%sum% (
echo fin
pause>nul
exit
) else (
goto:verify
)
:longitud
set "fun=!variable:~%sum%,1!"
if not defined fun (goto:eof)
set /a sum+=1
goto longitud

El problema llega dentro del for en "!variable:~%cont%,1!"... No me aparece el carácter como debería aparecer.

¿Alguna ayudita?

¡Gracias!


« Última modificación: 29 Mayo 2011, 02:41 por q0ok » En línea
pitoloko


Desconectado Desconectado

Mensajes: 2.500


Ver Perfil
Re: Filtro de variable numérica
« Respuesta #1 en: 29 Mayo 2011, 04:07 »

No encuentro el fallo en tu código, pero te dejo otra manera de hacer lo mismo, por si te sirve:


Código
@echo off
 
set /p "variable=Introduzca su variable: "
if not defined variable (goto:inicio)
 
call :getLength %variable%
echo %length%
pause>nul
 
 
 
:verify
echo %variable% |findstr "a b c d e f g h i j k l m n ¤ o p q r s t u v w x y z , + - _ ¬ ' = ? ¿ ( ) $ # @ º ª" >nul
If %ERRORLEVEL% EQU 0 (echo WRONG) ELSE (echo RIGHT)
 
 
pause>nul
echo fin
pause>nul
exit
 
 
 
:Longitud
:getLength
set /a length+=0
set str=%*
:getLength_2
set "str=%str:~1%" && set /a length+=1
if defined str (goto :getLength_2) || (goto :eof)
 


En línea

pa que
q0ok

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Filtro de variable numérica
« Respuesta #2 en: 29 Mayo 2011, 04:17 »

Gracias pitoloko por tu respuesta. Sí funciona pero me gustaría que si alguien lograse encontrar el error por el que no funciona el código que postee.
« Última modificación: 29 Mayo 2011, 22:24 por q0ok » En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
detectar si una variable es numerica
Desarrollo Web
redired 1 301 Último mensaje 20 Enero 2006, 02:45
por -Riven-Ward-
¿Como se aprar los elelemntos de una variable numerica?
Programación C/C++
Arcangel 4 472 Último mensaje 7 Junio 2006, 02:02
por Juan_Perez
Secuencia numerica...
Desafíos - Wargames
vivachapas 1 5,011 Último mensaje 31 Mayo 2007, 23:44
por vivachapas
Secuencia numerica « 1 2 »
Desafíos - Wargames
shoshonee 16 5,135 Último mensaje 18 Agosto 2007, 23:22
por ^Winder^
(solucionado)Duda sobre variable numérica
Programación Visual Basic
pitoloko 2 438 Último mensaje 15 Julio 2011, 13:48
por pitoloko
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines