]> git.llucax.com Git - mecon/scripts.git/blob - novedades/cargas_de_datos/web020
Se arregla la carga de datos del codep.
[mecon/scripts.git] / novedades / cargas_de_datos / web020
1 #!/usr/bin/perl -w
2
3 use strict;
4
5 # Recibo los parametros de la linea de comando e inicializo 
6 # las variables generales
7
8 if(!$ARGV[0] || !$ARGV[1])
9 {
10         print "No me pasaste los parametros adecuados\nuso\nweb020.pl origen destino";
11         exit;
12 }
13
14 my $origen=$ARGV[0];
15 my $destino=$ARGV[1];
16 my $arch_salida="$destino/web020";
17 my $arch_entrada="$origen/web020";
18 my $linea;
19 my @datos_linea_anterior;
20 my $contador;
21
22 # Archivos de entrada y salida
23 open arch_ent, "<$arch_entrada";
24 open arch_sal, ">$arch_salida";
25
26 # Leo el encabezado
27 $linea=<arch_ent>;
28
29 # Grabo el encabezado en el archivo de salida
30 print arch_sal $linea;
31
32 my @linea_anterior=(0,0,'nada',0);
33 my @campos;
34
35 # Leo la cantidad de lineas del archivo de entrada
36 my $aux;
37 $aux=`wc -l $arch_entrada`;
38 ($aux)=$aux=~/\s(\d*)\s/;
39 # Bucle que recorre el archivo de entrada linea por linea
40 for ($contador = $aux ;$contador > 0 ; $contador --)
41 {
42         $linea=<arch_ent> unless ($contador == 1);
43         @campos=split(",",$linea);
44         
45         if(     $linea_anterior[0] eq $campos[0] and
46                 $linea_anterior[1] eq $campos[1] and
47                 $linea_anterior[2] eq $campos[2] and
48                 $linea_anterior[3] eq $campos[3])
49         {
50                 my $dias;
51                 $dias=0;
52                 foreach my $item (1..31) 
53                 {
54                         if(     $linea_anterior[3+$item] ne "00" or
55                                 $campos[3+$item] ne "00")
56                         {
57                                 $campos[3+$item]="01";
58                                 $dias++;
59                         }
60                 }
61                 $campos[35]=$dias;
62         }else
63         {
64                 if(     $linea_anterior[0] and 
65                         $linea_anterior[1] and
66                         $linea_anterior[2])
67                 {
68                         print arch_sal $linea_anterior[$_]."," foreach (0..35);
69                         print arch_sal "\n";
70                 }else
71                 {
72                         if($contador < $aux)
73                         {
74                                 my $linea_archivo;
75                                 $linea_archivo = $aux - $contador + 1;
76                                 print "Error en la linea ".$linea_archivo.": ";
77                                 print $linea_anterior[$_]."," foreach (0..35);
78                                 print "\n";
79                         }
80                 }
81         }
82
83         @linea_anterior=@campos;
84 }
85
86 print arch_sal $linea_anterior[$_]."," foreach (0..35);
87 print arch_sal "\n";
88
89 close arch_ent;
90 close arch_sal;
91