- Código: Seleccionar todo
! Time Wind Wind Vert. Horiz. Vert. LinV Gust
! Speed Dir Speed Shear Shear Shear Speed
0.0 4.0 0.0 0.0 0.0 0.2 0.0 0.0
0.1 4.0 0.0 0.0 0.0 0.2 0.0 0.0
999.9 4.0 0.0 0.0 0.0 0.2 0.0 0.0
Este es el programa que quiero cambiar... en concreto quiero cambiar la segunda columna de números la que son todo 4, entre cada columna aunque aquí no se ve hay un tabulador y un par de espacios y el problema que me encuentro a la hora de hacer el cambio es que no solo no me cambia nada sino que me borra todo el contenido del archivo vaya que lo abre en sobreescritura, supongo, pero no imprime las líneas de nuevo...
El programa que uso para esto es el siguiente:
Using perl Syntax Highlighting
# Corre todos los casos de FAST para generar la curva Cp-lambda.
# ______________________________________________________________________
# Cambio la velocidad del viento en el archivo wnd para cada valor de lambda
for $i (2..15) {
# Lugar donde almacenaremos el fichero leido y modificado
my @wind;
# Defino la ley de variación de la velocidad con lambda si w= cte como vel = w*R/l
$j = 1.885 * 38.75 / $i;
open (WND, ">wind.wnd");
for (<WND>) {
$line =~ s/(\d\s+)\d+/$1$j/;
push @wind, $line;
}
close WND; # Cierro el archivo de viento
# Grabamos el resultado
open (OVERWRITE, ">wind.wnd") or die "No se pudo abrir wind.wnd: $!";
print OVERWRITE @wind or die "No se pudo sobreescribir wind.wnd: $!";
close OVERWRITE;
# Cambiamos el nombre de todos los archivos incluyendo $i
for $k (-6..30) {
rename ("H70($k).fst","H70($k)$i\.fst");
# Corremos todos los casos
system ("c:\fast\FAST \H70($k)$i.fst") == 0 or die "No se pudo correr el caso: $!";
}
}
# ______________________________________________________________________
# Cambio la velocidad del viento en el archivo wnd para cada valor de lambda
for $i (2..15) {
# Lugar donde almacenaremos el fichero leido y modificado
my @wind;
# Defino la ley de variación de la velocidad con lambda si w= cte como vel = w*R/l
$j = 1.885 * 38.75 / $i;
open (WND, ">wind.wnd");
for (<WND>) {
$line =~ s/(\d\s+)\d+/$1$j/;
push @wind, $line;
}
close WND; # Cierro el archivo de viento
# Grabamos el resultado
open (OVERWRITE, ">wind.wnd") or die "No se pudo abrir wind.wnd: $!";
print OVERWRITE @wind or die "No se pudo sobreescribir wind.wnd: $!";
close OVERWRITE;
# Cambiamos el nombre de todos los archivos incluyendo $i
for $k (-6..30) {
rename ("H70($k).fst","H70($k)$i\.fst");
# Corremos todos los casos
system ("c:\fast\FAST \H70($k)$i.fst") == 0 or die "No se pudo correr el caso: $!";
}
}
Coloreado en 0.006 segundos, usando GeSHi 1.0.8.4
¡¡A ver si me podéis echar otro cable, por favor!! ¡¡Muchísimas gracias por la ayuda!!