Lo se pero no me funciona. Aun así, si fueras tan amable de explicarme para que sirven estas lineas de codigo... me gustaria entenderlo para saberlo hacer la proxima vez o cuando se me planteen otros ejercicios.
(ECHO "%WORD%">"%TEMP%\Word.txt" & FOR %%# IN ("%TEMP%\Word.txt") DO (SET /A "Word_Length=%%~z# - 5")) - De esta linea entiendo que la variable WORD es sacada a un archivo de texto llamado Word.txt en la carpeta temp, supongo que el for es para asignar al simbolo de la almuadilla la cadena numerica que contiene el archivo Word.txt y ya donde me pierdo del todo es en esta parte del codigo: (SET /A "Word_Length=%%~z# - 5")), se supone que es una operacion matematica, pero no la entiendo... para letras supongo que se referirá que tenga en cuenta de la a a la z, pero el - 5 para que sirve.. o si me lo pudieras explicar todo mejor. ----------------------------------------------------------------------- Call Set "Compare_A=%%WORD:~0,%Word_Middle%%%" Call Set "Compare_B=%%WORD:~-%Word_Middle%%%" Estas lineas, la variable Comapre_A, supongo que se refiere a que dentro de la Variable Word se empieze a contar desde la posicion 0, pero no entiendo el resto, la coma que viene despues y la variable esa que no se de donde ha salido ni lo que hace %Word_Middle%, y si para datos numericos se aplica igualmente. De la segunda variable Compare_B, entiendo que para la variable Word esta vez es para que lea desde la ultima cifra o letra (~-) pero no entiendo porque esta vez la variable %Word_Middle% no va separado por una coma, deduzco que la coma es para decir que empieze a leer desde la ultima letra o cifra hasta la mitad... al no tener coma me lio y no entiendo porque se pone así. ----------------------------------------------------------------------- FOR /L %%X in (1,1,%Word_Middle%) DO (Call Set "Compare_B_REVERSED=%%Compare_B_REVERSED%%%%Compare_B:~-%%X,1%%") De esta linea llego a entender, que como en el caso de un palindromo el contenido de la variable es texto se pone For/L, en el caso del capicua se pondria For (sin /L, verdad?) aparte de eso %%X in (1,1,%Word_Middle%), no seria para que empieze a contar desde el digito o letra 0 así: %%X in (0,1,%Word_Middle%), entiendo que este bucle es para que el script cuente el numero de letras o numeros que hay hasta la mitad del contenido del numero o texto introducido por el usuario.. Por ultimo en esta linea me pierdo del todo: Call Set "Compare_B_REVERSED=%%Compare_B_REVERSED%%%%Compare_B:~-%%X,1%%") No entiendo si abres una nueva variable "Compare_B_REVERSED"= .... porque se vuelve a poner esa variable con doble % y seguido con otro doble %..Compare_B:~-%%X,1%%" .
Me gustaria entender el codigo para no tener que estar preguntando a cada rato y hacerlo por mi mismo en futuros ejercicios.
Siento ser tan pesado. Gracias por ayudarme.
|