Programación Web y Scripting > Perl

 Edición Y Creación De Archivos

(1/1)

patho:
hola a todos, tengo el siguiente problemita, me han entregado una carpeta con archivos de entrada de los trabajadores, es 1 archivo por dia, y me han entregado todos los meses de este año, se necesita crear un archivo unico con todos los contenidos del mes (todos los dias), pero el script que estoy tratando de hacer le mando por parametro el mes y el año del que quiero crear el archivo final,


--- Código: Text ---horas.pl 01 2008 

logro llegar a la carpeta sin problemas, pero no logro encontrar y menos editar los archivos.


alguien me puede ayudar en esto??


la estructura de las carpetas es la siguiente

./2008
    |-enero
    |-febrero
    |-marzo
    |-abril
    |-mayo
    |-junio
    |-julio
    |-agosto
    |-septiembre
    |-noviembre
    |-diciembre



y en cada una de ellas existen 4 archivos de la siguiente estructura

en el caso de la carpeta de enero

01-02-08-07.txt
01-02-08-10.txt
01-02-08-19.txt
01-02-08-24.txt


(mes-dia-año-xx.txt)



ojala alguien me poueda ayudar

de ante mano muchas gracias

su -:
Pon lo que llevas hecho para poderte ayudar.

patho:

--- Cita de: "su -" --- Pon lo que llevas hecho para poderte ayudar.
--- Fin de la cita ---
tengo esto por ahora, mas de 3 años qeu no tomaba perl por eso es que acudi a ustedes


gracias, estoy trabajando en Debian Etch





--- Código: Text ---  #!/usr/bin/perl $MES = $ARGV[0];$ANIO = $ARGV[1]; for ($ARGV[0]) {  /01/ and do {$MES = 'enero'};  /02/ and do {$MES = 'febrero'};  /03/ and do {$MES = 'marzo'};  /04/ and do {$MES = 'abril'};  /05/ and do {$MES = 'mayo'};  /06/ and do {$MES = 'junio'};  /07/ and do {$MES = 'julio'};  /08/ and do {$MES = 'agosto'};  /09/ and do {$MES = 'septiembre'};  /10/ and do {$MES = 'octubre'};   /11/ and do {$MES = 'noviembre'};  /12/ and do {$MES = 'diciembre'};} $Direc = "$ANIO/$MES"; $archivos = `ls $Direc`;foreach my $arch (@archivos) {print $arch;  open FICHERO, $arch;  while ($linea = <FICHERO>) {    chop($linea);    print $linea."\n";  } close FICHERO}   

su -:
Bien, de lo que ya tenes hecho:

--- Código: Text ---#!/usr/bin/perluse strict; my @mes = (    "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio",    "agosto", "septiembre", "octubre", "noviembre", "diciembre"); my $dir = $ARGV[1] . ( $mes[ $ARGV[0] ] );opendir DR, $dir or die "No se puede abrir el dierectorio $dir: $!\n";foreach my $fichero ( readdir(DR) ){ # por cada cosa en $dir    next if not -f $fichero; # ignoramos si es directorio    open ENTRADA, $fichero or die "$fichero: $!\n";    open SALIDA, "+>fichero_de_salida.txt" or die "salida: $!\n";    while ( not eof(ENTRADA) ){        my $buff;        sysread ( ENTRADA, $buff, 1048576 ); # leemos 1MB        print SALIDA $buff; # imprimimos en salida    }    close SALIDA;    close ENTRADA;}closedir DR; 
En teoria funciona y hay que agregarle un par de cosas mas para que sea perfecto, pero eso te lo dejo a vos.

patho:

--- Cita de: "su -" ---Bien, de lo que ya tenes hecho:

--- Código: Text ---#!/usr/bin/perluse strict; my @mes = (    "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio",    "agosto", "septiembre", "octubre", "noviembre", "diciembre"); my $dir = $ARGV[1] . ( $mes[ $ARGV[0] ] );opendir DR, $dir or die "No se puede abrir el dierectorio $dir: $!\n";foreach my $fichero ( readdir(DR) ){ # por cada cosa en $dir    next if not -f $fichero; # ignoramos si es directorio    open ENTRADA, $fichero or die "$fichero: $!\n";    open SALIDA, "+>fichero_de_salida.txt" or die "salida: $!\n";    while ( not eof(ENTRADA) ){        my $buff;        sysread ( ENTRADA, $buff, 1048576 ); # leemos 1MB        print SALIDA $buff; # imprimimos en salida    }    close SALIDA;    close ENTRADA;}closedir DR; 
En teoria funciona y hay que agregarle un par de cosas mas para que sea perfecto, pero eso te lo dejo a vos.
--- Fin de la cita ---





muchas gracias voy a probar tus sugerencias  :)  :)

habian muchas cosas que no me acordaba  :huh: jeje


y despues cuento como me fue ajaja gracias nuevamente



saludos

Navegación

[0] Índice de Mensajes

Ir a la versión completa