Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





cabezal comun a todas las clases (eclipse)

Iniciado por ZüNdFoLGe, 20 de Febrero de 2008, 01:22:21 PM

« anterior - próximo »

ZüNdFoLGe

Bueno son alrededor de 300 clases y tengo que poner un cabezal comun a todas. Hay alguna herramienta en eclipse para hacerlo? A mano es muy jodido  :cry:

ZüNdFoLGe

:twisted:  ctrl+C   :twisted:  ctrl+V  :twisted: ctrl+C  :twisted:  ctrl+V :twisted:  joder :evil:

Tei

Supongo que puedes hacer un script, que lo haga, concatenando el mismo fichero a todos tus ficheros.

algo asi como esto:

for $file ( @ficheros)  {
copy noseque.head+$file  out/$file
}

Zaelsius

Creo que podrías usar un "precompiled header" para ello, evitando así tocar cada fichero individual, pero no sé como se configuraría tal parámetro del proyecto en Eclipse.

ZüNdFoLGe

Cita de: "Tei"Supongo que puedes hacer un script, que lo haga, concatenando el mismo fichero a todos tus ficheros.

algo asi como esto:

for $file ( @ficheros)  {
copy noseque.head+$file  out/$file
}

entiendo...pero creo que seria

cat $miClase $header > $miClase


pero tengo 2 dudas:
* como paso todas las clases como parametro
* desde donde corro el script

desde consola eso seria algo como:


copy clase1.java + header.java


a la clase1  se le concatena el contenido de header, al inicio. Habria que iterar (como tu pusiste) sobre todas las clases y ejecutarlo...el tema es como  :D

Tei

Cita de: "ZüNdFoLGe"
Cita de: "Tei"Supongo que puedes hacer un script, que lo haga, concatenando el mismo fichero a todos tus ficheros.

algo asi como esto:

for $file ( @ficheros)  {
copy noseque.head+$file  out/$file
}

entiendo...pero creo que seria

cat $miClase $header > $miClase


pero tengo 2 dudas:
* como paso todas las clases como parametro
* desde donde corro el script

desde consola eso seria algo como:


copy clase1.java + header.java


a la clase1  se le concatena el contenido de header, al inicio. Habria que iterar (como tu pusiste) sobre todas las clases y ejecutarlo...el tema es como  :D

Puedes crear una lista ficheros:

ls -1 > listaficheros

luego puedes copipastear la lista en una variable

$ficheros = "bla.c
blabla2.c
blaglubla.c";

nota: hay formas mucho mejores

y convertilo a un array

@ficheros = split(/\n/,$ficheros);

luego lo recorres en un bucle


foreach $file ( @ficheros) {
 system( "cp head headtemp && cat $file >>headtemp && mv headtemp $file"); //pervert way to concatenate two files
}
nota: esto es pseudocodigo, no lo confudas con ningun lenguaje de programacion o de consola

En ms-dos creo que las concatenaciones deberian tener este aspecto:
copy header.java+clase1.java  clase1.java

Seguramente existe una forma elegante de hacer esto con un simple makefile, dado que make te da ya de por si de gratis el "haz tal operacion con todos los *.java".

No se si te he ayudado.  Creo que todo el mundo deberia saber un poco de [inserta aqui tu lenguaje de script favorito] para hacer esta clase de cosas.

¿Desde donde correr el script?  Si haces un buen script, sera recursivo, y te bastara con ejecutarlo en el directorio donde este el codigo fuente, y sus subdirectorios. Si el script es una caca, tendras que ejecutarlo en todos los directorios donde hay ficheros .java, con cuidado de no ejecutarlo dos veces. Para estas cosas es obvio que antes es ideal hacer una copia de seguridad por si acaso.

ZüNdFoLGe

es buena idea... lo voy a probar  8)  grax!






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.