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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  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 2,818 veces)
q0ok

Desconectado Desconectado

Mensajes: 9


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

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 am por q0ok » En línea

SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


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

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


Código
  1. @echo off
  2.  
  3. set /p "variable=Introduzca su variable: "
  4. if not defined variable (goto:inicio)
  5.  
  6. call :getLength %variable%
  7. echo %length%
  8. pause>nul
  9.  
  10.  
  11.  
  12. 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
  13. If %ERRORLEVEL% EQU 0 (echo WRONG) ELSE (echo RIGHT)
  14.  
  15.  
  16. pause>nul
  17. echo fin
  18. pause>nul
  19.  
  20.  
  21.  
  22. :Longitud
  23. :getLength
  24. set /a length+=0
  25. set str=%*
  26. :getLength_2
  27. set "str=%str:~1%" && set /a length+=1
  28. if defined str (goto :getLength_2) || (goto :eof)
  29.  


En línea

No he vuelto, solo estoy de paso.
q0ok

Desconectado Desconectado

Mensajes: 9


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

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 pm por q0ok » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
combinacion numerica
Scripting
seki003 1 4,780 Último mensaje 21 Noviembre 2008, 13:53 pm
por Novlucker
Error 91: Variable de tipo object o la variable de bloque with no esta estableci
Programación Visual Basic
brus_k10 2 6,599 Último mensaje 16 Junio 2009, 16:20 pm
por cassiani
Ayuda con Exprecion Regular Serie Numerica
Java
cyberserver 4 5,014 Último mensaje 31 Diciembre 2010, 19:55 pm
por cyberserver
(solucionado)Duda sobre variable numérica
Programación Visual Basic
SuperDraco 2 1,932 Último mensaje 15 Julio 2011, 13:48 pm
por SuperDraco
Comprobar si una variable es numérica
Java
JonaLamper 6 3,447 Último mensaje 8 Enero 2015, 21:38 pm
por JonaLamper
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines