Les explico quiero hacer un cifrador y descifrador para cualquier nombre que el usuario ingrese.
Pero ¿que pasa? yo quiero que disperse las letras y luego las mezcle con otras pero el problema es que el usuario puede ingresar la cantidad de caracteres que quiera cuando yo pido el nombre. Entonces mi pregunta es ¿Se puede limitar la cantidad de caracteres para una variable? y de ser asi ¿Como?
Desde ya muchas gracias espero haber sido claro.
Lenguaje....?
A perdon me habia olvidado de eso. Estoy usando batch paraprogramar. Y por las dudas ya se no es lo mejor pero estoy aprendiendo a usarlo por eso pregunto como hacerlo en este.
No entendi lo de:
Cita de: the_Avenger en 6 Octubre 2011, 01:22 AM
Les explico quiero hacer un cifrador y descifrador para cualquier nombre que el usuario ingrese.
Pero ¿que pasa? yo quiero que disperse las letras y luego las mezcle con otras...
Lo de limitar la cantidad de caracteres de una variable en batch, pues se podria hacer con el tokens del FOR, contar los caracteres y con un condicional IF hacer cierta cosa si es Igual o menor (<=) a la cantidad limitante, y sino hacer otra cosa.
No se si me explico, si alguien nos pudiera ayudar con el code seria perfecto, estare probando a ver si logro algo..
Zalu2
o podes pedir la introduccion de una variable y solo usar los primeros 16 caracteres.. aunque escriban 78 supongamos, solamente estarias usando los 16
%variable:~0,15%
Bueno gracias por los datos me gusta mas la idea del tokens el tema es que no entiendo muy bien como se usa el FOR.
Buscando por el foro, di con este code de M a a t:
setlocal enabledelayedexpansion
set "count=0"
set "string=Hello World"
:loop
if "!string:~%count%,1!" neq "" set /a "count+=1" & goto loop
echo:La cadena "%string%" contiene %count% caracteres.
La verdad no entiendo mucho cuando se usa el setlocal, asi que no se como acomodarlo a lo que se necesita, aunque la opcion que nos da darioxhcx es mejor y sin tanta complicacion. :xD
Nota: Sigo sin entender lo de esparsir y luego juntar los caracteres :¬¬
Edito:
Encontre otra solucion mejor y con un code mas para nosotros :xD
Leo Gutierrez
@echo off
:code
set /p "cadena=Cadena : "
if not defined cadena goto:code
set /a "contador=0"
:bucle
set "cadena=%cadena:~1%"
set /a "contador+=1"
if defined cadena goto:bucle
echo Longitud : %contador%
pause>nul
exit /b 0
Es muy bueno el code y simple y entendible.
Zalu2
Bueno esto no limita al usuario pero cuenta los caracteres hasta que no encuentra mas en la variable no?
No hay manera de limitar la entrada a n carácteres, lo único que puedes hacer es encerrar al usuario en un ciclo hasta que haga lo que tú quieres, para ello tienes que contar los caracteres, y sino se cumple la condición le vuelves a pedir la entrada.
A bueno esta bien. Una pregunta que es ese codigo que pusiste alli abajo?
No puse nada, es mi firma.
aaaa ya no sabia ni que era ajajjaja. Muchas gracias lo del contador de caracteres me servio mucho ahora puedo hacer que los cuente y me diga cuantos tiene y si no es el numero que yo pido que lo regrese a ingresar su nombre otra vez. Gracias a todos.