Espero me puedan ayudar, tengo que modificar este programa, el cual lee un archivo origen y quiero dejar los datos con otro formato en un archivo de salida, funciona bien, pero al momento de grabar al archivo lo hace en una misma línea, quiero agregar un salto en cada registro para que el resultado sea así:
- Código: Seleccionar todo
MEX 04/02/07 58.98 35.43 93.96
MEX 04/03/07 56.32 41.93 76.36
MEX 04/04/07 59.90 43.16 92.63
MEX 04/05/07 40.27 24.96 71.87
Actualmente graba al archivo la siguiente cadena
- Código: Seleccionar todo
MEX 04/02/07 58.98 35.43 93.96MEX 04/03/07 56.32 41.93 76.36MEX 04/04/07 59.90 43.16 92.63MEX 04/05/07 40.27 24.96 71.87
Este es el programa.
Using perl Syntax Highlighting
$dir_origen ='d:\rendimiento\comportamiento';
$dir_destino = 'd:\rendimiento\cpudia';
#$dir_destino = 'salida';
# Para todos los ficheros origen
foreach $fichero ( <$dir_origen/*.txt> ) {
($nombre) = $fichero =~ /\/([^\/]+)$/; # Nombre real del fichero
# Tres últimas letras del fichero
($terminacion) = $nombre =~ /(...)\.txt/;
$terminacion = substr($nombre,0,3);
# Procesamos el fichero o pasamos al siguiente
#print "Procesando $nombre \n";
open FICHERO, "<$fichero" or next;
open SALIDA, ">$dir_destino/$terminacion".".txt" or next;
while ( $linea = <FICHERO> ) {
# Formateo de la línea
$var1 = substr($linea,1,26);
$var2 = substr($linea,7,20);
$var3 = substr($linea,0,2);
$var4 = substr($linea,2,2);
$var5 = substr($linea,4,2);
$var6 = $var4.'/'. $var5 .'/'. $var3;
$linea = $terminacion .' ' . $var6 . $var2 ; # Le ponemos la terminación al principio
print SALIDA $linea;
}
close SALIDA; close FICHERO;
}
$dir_destino = 'd:\rendimiento\cpudia';
#$dir_destino = 'salida';
# Para todos los ficheros origen
foreach $fichero ( <$dir_origen/*.txt> ) {
($nombre) = $fichero =~ /\/([^\/]+)$/; # Nombre real del fichero
# Tres últimas letras del fichero
($terminacion) = $nombre =~ /(...)\.txt/;
$terminacion = substr($nombre,0,3);
# Procesamos el fichero o pasamos al siguiente
#print "Procesando $nombre \n";
open FICHERO, "<$fichero" or next;
open SALIDA, ">$dir_destino/$terminacion".".txt" or next;
while ( $linea = <FICHERO> ) {
# Formateo de la línea
$var1 = substr($linea,1,26);
$var2 = substr($linea,7,20);
$var3 = substr($linea,0,2);
$var4 = substr($linea,2,2);
$var5 = substr($linea,4,2);
$var6 = $var4.'/'. $var5 .'/'. $var3;
$linea = $terminacion .' ' . $var6 . $var2 ; # Le ponemos la terminación al principio
print SALIDA $linea;
}
close SALIDA; close FICHERO;
}
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
Agradezco su ayuda de antemano.