• Lunes 29 de Noviembre de 2021, 16:25

Autor Tema:  Edición Y Creación De Archivos  (Leído 2742 veces)

patho

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Edición Y Creación De Archivos
« en: Jueves 10 de Abril de 2008, 21:36 »
0
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
  1. horas.pl 01 2008
  2.  


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 -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Edición Y Creación De Archivos
« Respuesta #1 en: Jueves 10 de Abril de 2008, 21:53 »
0
Pon lo que llevas hecho para poderte ayudar.
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

patho

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Edición Y Creación De Archivos
« Respuesta #2 en: Jueves 10 de Abril de 2008, 22:44 »
0
Cita de: "su -"
Pon lo que llevas hecho para poderte ayudar.
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
  1.  
  2.  
  3. #!/usr/bin/perl
  4.  
  5. $MES = $ARGV[0];
  6. $ANIO = $ARGV[1];
  7.  
  8. for ($ARGV[0]) {
  9.   /01/ and do {$MES = 'enero'};
  10.   /02/ and do {$MES = 'febrero'};
  11.   /03/ and do {$MES = 'marzo'};
  12.   /04/ and do {$MES = 'abril'};
  13.   /05/ and do {$MES = 'mayo'};
  14.   /06/ and do {$MES = 'junio'};
  15.   /07/ and do {$MES = 'julio'};
  16.   /08/ and do {$MES = 'agosto'};
  17.   /09/ and do {$MES = 'septiembre'};
  18.   /10/ and do {$MES = 'octubre'};
  19.   /11/ and do {$MES = 'noviembre'};
  20.   /12/ and do {$MES = 'diciembre'};
  21. }
  22.  
  23. $Direc = "$ANIO/$MES";
  24.  
  25. $archivos = `ls $Direc`;
  26. foreach my $arch (@archivos) {
  27. print $arch;
  28.   open FICHERO, $arch;
  29.   while ($linea = <FICHERO>) {
  30.     chop($linea);
  31.     print $linea."\n";
  32.   } close FICHERO
  33. }
  34.  
  35.  
  36.  

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Edición Y Creación De Archivos
« Respuesta #3 en: Viernes 11 de Abril de 2008, 00:20 »
0
Bien, de lo que ya tenes hecho:
Código: Text
  1. #!/usr/bin/perl
  2. use strict;
  3.  
  4. my @mes = (
  5.     "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio",
  6.     "agosto", "septiembre", "octubre", "noviembre", "diciembre"
  7. );
  8.  
  9. my $dir = $ARGV[1] . ( $mes[ $ARGV[0] ] );
  10. opendir DR, $dir or die "No se puede abrir el dierectorio $dir: $!\n";
  11. foreach my $fichero ( readdir(DR) ){ # por cada cosa en $dir
  12.     next if not -f $fichero; # ignoramos si es directorio
  13.     open ENTRADA, $fichero or die "$fichero: $!\n";
  14.     open SALIDA, "+>fichero_de_salida.txt" or die "salida: $!\n";
  15.     while ( not eof(ENTRADA) ){
  16.         my $buff;
  17.         sysread ( ENTRADA, $buff, 1048576 ); # leemos 1MB
  18.         print SALIDA $buff; # imprimimos en salida
  19.     }
  20.     close SALIDA;
  21.     close ENTRADA;
  22. }
  23. closedir DR;
  24.  

En teoria funciona y hay que agregarle un par de cosas mas para que sea perfecto, pero eso te lo dejo a vos.
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

patho

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Edición Y Creación De Archivos
« Respuesta #4 en: Viernes 11 de Abril de 2008, 22:15 »
0
Cita de: "su -"
Bien, de lo que ya tenes hecho:
Código: Text
  1. #!/usr/bin/perl
  2. use strict;
  3.  
  4. my @mes = (
  5.     "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio",
  6.     "agosto", "septiembre", "octubre", "noviembre", "diciembre"
  7. );
  8.  
  9. my $dir = $ARGV[1] . ( $mes[ $ARGV[0] ] );
  10. opendir DR, $dir or die "No se puede abrir el dierectorio $dir: $!\n";
  11. foreach my $fichero ( readdir(DR) ){ # por cada cosa en $dir
  12.     next if not -f $fichero; # ignoramos si es directorio
  13.     open ENTRADA, $fichero or die "$fichero: $!\n";
  14.     open SALIDA, "+>fichero_de_salida.txt" or die "salida: $!\n";
  15.     while ( not eof(ENTRADA) ){
  16.         my $buff;
  17.         sysread ( ENTRADA, $buff, 1048576 ); # leemos 1MB
  18.         print SALIDA $buff; # imprimimos en salida
  19.     }
  20.     close SALIDA;
  21.     close ENTRADA;
  22. }
  23. closedir DR;
  24.  

En teoria funciona y hay que agregarle un par de cosas mas para que sea perfecto, pero eso te lo dejo a vos.





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