[Ayuda]automatizar varios procesos

Iniciado por AnkokuAsurA, 14 Diciembre 2014, 05:15 AM

0 Miembros y 1 Visitante están viendo este tema.

AnkokuAsurA

Hola, no se si se puede pedir este tipo de ayuda pero no se pierde nada intentando es que ya no se como hacerle... si no se puede disculpen y borren el mensaje.
Hace tiempo que "programo" algunas cosas en una programa para hacer juegos de lucha llamado "mugen" y tengo un parche que para hacer ciertas modificaciones en los personajes la cosa es que para "instalar" el parche hay que hacer varias ediciones en distintos archivos de texto manualmente y me gustaria automatizar el proceso mediante un batch, estuve tratando de aprender los codigos y es muy arduo asi de la nada mas cuando la meta en si no es aprender el lenguaje si no porque quiero crear el parche para el dichoso programa. por lo cual mi idea es preguntar puntualmente lo que necesito (mas o menos) y si me pueden ayudar dandome una idea de los codigos:

1-Es posible buscar en un archivo de texto una frase y apartir de esta frase cortar todo el resto (bajando hasta el final) del archivo de texto y este texto cortado pegarlo en otro archivo de texto debajo de otra frase que debe identificar?
Ejemplo:
tenemos unos archivos de txt pero tiene la extension cambiada estan como *.cns y *.cmd
en los .cns hay una parte de codigo que empieza con [statedef -2] y luego hay varios codigos mas y en el cmd hay una parte que dice [statedef -1] y abajo mas codigos.
lo que necesito hacer es que de manera automatizada el batch busque en los archivos cns si existe:

[statedef -2]
codigos codigos 2
codigos codigos 2
codigos codigos 2
codigos codigos 2


y lo que haga es cortar a partir del [statedef -2] hasta el final del txt
luego en el cmd buscar la frase

[statedef -1] < esta frase, lo de abajo esta de ejemplo de lo que se veria
codigos codigos 1
codigos codigos 1
codigos codigos 1
codigos codigos 1


y debajo del [stattedef -1] pege todo lo que corto del archivo anterior resultando algo como:

[statedef -1]
codigos codigos 1
codigos codigos 1
codigos codigos 1
codigos codigos 1
[statedef -2]
codigos codigos 2
codigos codigos 2
codigos codigos 2
codigos codigos 2


o sino

[statedef -1]
[statedef -2]
codigos codigos 2
codigos codigos 2
codigos codigos 2
codigos codigos 2
codigos codigos 1
codigos codigos 1
codigos codigos 1
codigos codigos 1


cualquiera de las opciones funcionaria correctamente.
Me disculpo si es un lio mi forma de explicarme y mas si no se puede hacer este tipo de consultas, gracias

engel lex

#1
te digo... batch no es un codigo bonito y a mi nunca me parecio realmente practico para programar, puedes intentar con python o y visual basic que son mucho más facil de hacer estas operaciones de edicion de archivos y por lo menos python no requiere más que notepad

normalmente no entrego codigos resueltos, pero en pro de explicar mi punto de lo simple que sería en python... seria algo como:

Código (python) [Seleccionar]
entrada = open("archivo1.algo", "r")#abre para leer
salida = open("archivo2.algo", "a")#abrimos el archivo para agregar al final
copiar = False#nor marca cuando debemos copiar
for linea in entrada:#lee linea a linea
 if linea.find("cosa a buscar")>-1: copiar = True #si cosigue eso debe empezar a copiar
 if copiar == True: salida.write(linea) #copiamos lo conseguido


y eso fue todo, serían 6 lineas bastante simples y ciertamente autoexplicativas... intentalo... (hay cositas que arreglar y si son multiples archivos, te toca buscar como hacerlo)

si no quieres instalar nada aún puedes hacerlo en vbs que tiene casi la misma sintaxis que visual basic
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Eleкtro

#2
Cita de: AnkokuAsurA en 14 Diciembre 2014, 05:15 AMestuve tratando de aprender los codigos y es muy arduo asi de la nada mas cuando la meta en si no es aprender el lenguaje si no porque quiero crear el parche para el dichoso programa. por lo cual mi idea es preguntar puntualmente lo que necesito

Me disculpo si es un lio mi forma de explicarme y mas si no se puede hacer este tipo de consultas, gracias

Has elaborado un problema con muchos detalles, ahora, ¿has elaborado algún código?.

En el foro no se discrimina a aquellos que solo quieren solventar un problema esporádico sin tener apenas conocimientos de programación, pero por lo general este tipo de personas suelen mostrar sus progresos y haberlo intentado por si mismo para así ayudarte donde estés atascado, ya que si te hicieramos la tarea, y gratis, esta página se llamaría FreeJobs.com.

Dicho esto, Batch es la peor elección para la manipulación de texto, lo que pides se puede hacer con dicho ""lenguaje"", no es dificil ...solo tienes que usar un FOR, pero resultaría muy engorroso, ya que se invierte demasiado tiempo/escritura en desarrollar un código bajo Batch para realizar lo que debería ser una simple tarea, en comparación con cualquier otro lenguaje.

Te diría que aprendieses otro (cualquier) lenguaje con soporte para expresiones regulares (RegEx), también puedes utilizar un FOR como en el ejemplo del compañero @engel lex, pero por tus palabras no estoy muy seguro de si querrías aprender lo básico de otro lenguaje que esté capacitado para la tarea... así que de todas formas aquí puedes ver un multi-ejemplo de como manipular texto en Batch (de una manera algo diferente a lo que he recomendado):
[BATCH] [APORTE] Rutina TEXTMAN para manipular archivos de texto

Te sugiero que lo intentes en el lenguaje que sea, y vuelvas mostrando tú propio intento de código.

Saludos!