Título: ayuda para hacer un batch Publicado por: desdemx en 23 Mayo 2012, 17:56 pm Hola, yo realmente no se hacer este tipo de archivos, solo los he usado alguna vez, pero tengo la necesidad de modificar mas de 800 archivos de texto y por ello pensé que seria mas fácil con un programa que haga una parte en automático.
Lo que necesito es lo siguiente: Los archivos son de esta forma: 123|456|789|012|345|123|456|789|012|345|123|456|789|012|345|123|456|789|012|345|123|456|789|012|345|123|456|789|012|345|123|456|789|012|345|123|456|789|012|345|123|456|789|012|345|123|456|789|012|345|123|456|789|012|345|123|456|789|012|345| Pero yo los necesito de esta forma: 123| 456| 789| 012| 123| 456| 789| 012| 123| 456| 789| 012| ¿Es posible hacerlo con un batch? Si se puede ¿como puedo hacerlo? De antemano muchas gracias. Título: Re: ayuda para hacer un batch Publicado por: Eleкtro en 23 Mayo 2012, 19:35 pm Quizás no es el code más perfecto (Demasiado código), pero hace lo que pides.
Código (http://img59.imageshack.us/img59/3002/prtscrcapturea.jpg) PD: Otra forma seria usar un FOR + Un Contador, Para ir mostrando cada bloque en 4x4 caracteres del texto. Código
Saludos. Título: Re: ayuda para hacer un batch Publicado por: desdemx en 23 Mayo 2012, 20:08 pm Muchas gracias.
Si funciona :D, pero tengo algunos segmentos que son de mas de 3 numero y otros de menos incluso hay unos donde están los pipes juntos, ¿existe la posibilidad de que lo haga sin que tome en cuenta la cantidad de caracteres que hay entre cada pipe? Y por otra parte también requiero que queden los pipes al final de cada segmento. Por ejemplo de esta forma: 123| 45| 67890| | | 1| Te agradezco mucho nuevamente. Título: Re: ayuda para hacer un batch Publicado por: Eleкtro en 23 Mayo 2012, 20:16 pm Si, un contador para mostrar solo los números... cuando tenga un rato lo hago si no se me adelanta alguien.
salu2 Título: Re: ayuda para hacer un batch Publicado por: desdemx en 23 Mayo 2012, 20:20 pm Te lo agradezco mucho.
Título: Re: ayuda para hacer un batch Publicado por: Runex en 23 Mayo 2012, 21:03 pm Si quieres te lo puedo hacer en python, espero tu respuesta y mañana en 5 minutos cuando venga del instituto lo tienes :D
Título: Re: ayuda para hacer un batch Publicado por: desdemx en 23 Mayo 2012, 21:49 pm Muchas gracias, no se cual o si haya algún inconveniente para ejecutarlo y que me funcione.
Y por otra parte estuve revisando mas archivos y en algunos también hay texto, así que no solo son segmentos de puros numero, sino en algunos están combinados. De nuevo muchas gracias. Título: Re: ayuda para hacer un batch Publicado por: Eleкtro en 24 Mayo 2012, 09:41 am en algunos también hay texto, así que no solo son segmentos de puros numero, sino en algunos están combinados. El siguiente código separa los bloques cuando encuentra el caracter "|", Así que es independiente de si son números o texto... pero si algún bloque contiene un espacio, es posible que de error. Código: @Echo OFF EDIT: (http://img27.imageshack.us/img27/7121/prtscrcapturecb.jpg) PD: Joder, lo facil que seria hacer esto en ruby con un "split" o en python xD Saludos Título: Re: ayuda para hacer un batch Publicado por: orvtech en 24 Mayo 2012, 13:48 pm Hola, yo realmente no se hacer este tipo de archivos, solo los he usado alguna vez, pero tengo la necesidad de modificar mas de 800 archivos de texto y por ello pensé que seria mas fácil con un programa que haga una parte en automático. adapta esto a un loop:Lo que necesito es lo siguiente: Los archivos son de esta forma: 123|456|789|012|345|123|456|789|012|345|123|456|789|012|345|123|456|789|012|345|123|456|789|012|345|123|456|789|012|345|123|456|789|012|345|123|456|789|012|345|123|456|789|012|345|123|456|789|012|345|123|456|789|012|345|123|456|789|012|345| Pero yo los necesito de esta forma: 123| 456| 789| 012| 123| 456| 789| 012| 123| 456| 789| 012| ¿Es posible hacerlo con un batch? Si se puede ¿como puedo hacerlo? De antemano muchas gracias. Código: cat archivo-test.txt | tr '|' '\n' | awk '{print $0"|"}' Podria ser: Código: for archivos in `ls *.txt` UPDATE: Sorry, recién acabo de leer bien el titulo del post y lo que piden es un batch, no un bash :huh: Título: Re: ayuda para hacer un batch Publicado por: Runex en 24 Mayo 2012, 14:11 pm Una solución rápida en python pero funcional :)
(http://i48.tinypic.com/zofoy.png) Código
Y ésta sería otra alternativa haciendo uso de split, como dice mi compañero Elektro Código
En ambas debes cambiar "archivox.txt" por el nombre de tu archivo :) Un saludo, Runex. Título: Re: ayuda para hacer un batch Publicado por: Eleкtro en 24 Mayo 2012, 15:13 pm Y ésta sería otra alternativa haciendo uso de split, como dice mi compañero Elektro Código
Maldita séa, De verdad que me da mucha rabia que Batch no tenga algo así... No creo que séa tan dificil de integrar una funcion de "split" por parte de Microsoft... Bueno, Aquí lo dejo en Ruby, Ya que estamos: Código
Saludos Título: Re: ayuda para hacer un batch Publicado por: desdemx en 24 Mayo 2012, 16:37 pm WOW ;D Muchas gracias EleKtro, si funciona a pesar de los espacios, pero el problema es que solo pasa hasta 99 líneas, ¿hay forma de hacer que haga mas? Porque lo mínimo son 310, pero hay unas que tienen mas de 1000
Muchas gracias Runex ;D , pero perdona mi ignorancia, ¿estos con que extensión los guardo y que programa debo de tener para poder ejecutarlos? Y si que se nota la diferencia entre la programación entre uno y otro, es bastante menos. orvtech de cualquier forma te agradezco mucho. Saludos. Elektro H@cker: No hacer doble (Ni triple...) post, usa el botón "Modificar" Título: Re: ayuda para hacer un batch Publicado por: Eleкtro en 24 Mayo 2012, 16:47 pm ¿estos con que extensión los guardo y que programa debo de tener para poder ejecutarlos? Si quieres usar el code de Runex, El archivo se guarda como ARCHIVO.PY, Y necesitas Python. http://www.python.org/download/ Si quieres usar el último code que puse, El archivo se guarda como ARCHIVO.RB, Y necesitas Ruby... http://www.ruby-lang.org/es/downloads/ El código en Batch seguramente te esté dando problemas por el límite de recursividad (Demasiadas llamadas "CALL") Intentaré arreglarlo a ver... EDITO: ¿Es este el error que te da? Código: ****** RECURSIÓN DE ARCHIVO POR LOTES supera los límites de la PILA ****** Saludos Título: Re: ayuda para hacer un batch Publicado por: desdemx en 24 Mayo 2012, 16:53 pm Gracias de nuevo ;D , voy a probar con los oros 2 que me hicieron favor de hacer.
En verdad agradezco mucho el tiempo que invierten en ayudarme. :laugh: ;-) Saludos. En cuanto al error, no veo cual solo se cierra, pero lo probé con varios archivos y todos terminan en la línea 99. Saludos. Si quieres usar el code de Runex, El archivo se guarda como ARCHIVO.PY, Y necesitas Python. http://www.python.org/download/ Si quieres usar el último code que puse, El archivo se guarda como ARCHIVO.RB, Y necesitas Ruby... http://www.ruby-lang.org/es/downloads/ El código en Batch seguramente te esté dando problemas por el límite de recursividad (Demasiadas llamadas "CALL") Intentaré arreglarlo a ver... EDITO: ¿Es este el error que te da? Código: ****** RECURSIÓN DE ARCHIVO POR LOTES supera los límites de la PILA ****** Saludos Ya descargue los programas para usar los otros archivos, y los guarde con las extensiones que me dijiste y el de Ruby si alcanzo a ver que hace algo, pero la ventana se cierra muy rápido. El de Python es aun más rápido. No se si estoy haciendo algo mal, ¿me puedes decir por favor como debo ejecutarlos para obtener el resultado? :huh: Gracias. Saludos. Elektro H@cker: No hacer doble post, usa el botón "Modificar" Título: Re: ayuda para hacer un batch Publicado por: Eleкtro en 24 Mayo 2012, 17:36 pm desdemx.rb
Código
Te lo dejo convertido a .exe, así no tienes que descargar ruby ni python: http://www.mediafire.com/?8la94w50ct1i780 (http://img135.imageshack.us/img135/1108/prtscrcaptureid.jpg) Saludos. PD: Repito, No hagas doble y mucho menos TRIPLE post... :-/ el proximo doble post lo elimino. Título: Re: ayuda para hacer un batch Publicado por: desdemx en 24 Mayo 2012, 18:06 pm Perdón por lo de los post. :-[
Muchisimas gracias ;D ya funciona como lo quiero ;-) Saludos. Título: Re: ayuda para hacer un batch Publicado por: Runex en 24 Mayo 2012, 18:55 pm Se cierra rápido ya que no puse ningún bloqueo una vez finalizada la secuencia del programa, con un simple raw_input() se hubiera solucionado :).
Me alegro de que hayas conseguido lo que necesitabas, cualquier cosa, ya sabes :) Un saludo, Runex Título: Re: ayuda para hacer un batch Publicado por: desdemx en 24 Mayo 2012, 20:33 pm Runex pues te agradezco mucho el tiempo que le dedicaste ;D y mas gracias por ofrecer tu ayuda ;D.
Saludos. |