#!/usr/bin/env perl use strict; use warnings; use English; use File::Basename; use Cwd; my $NOM_PROG = basename $PROGRAM_NAME; # # # les buts de ce script sont : # 1- activer l option "ATTRIBUT_ sur_volume_initial_" pour le chargement "VOLUMIQUE" # 2- supprimer le fichier .PI du calcul precedent .CVisu1 afin d empecher un RESTART lors du calcul .CVisu2 # (car le but du calcul .CVisu2 est de faire un nouveau calcul avec l option "ATTRIBUT_ sur_volume_initial_") # #chemin absolu vers l executable Herezh my $hzchemin = shift(@ARGV); #nom du fichier .info my $finfo = shift(@ARGV); #forcer a vider le buffer (autoflush) $| = 1; #changement de parametre sur le chargement VOLUMIQUE # => on active l option "ATTRIBUT_ sur_volume_initial_" print "(prog:$NOM_PROG) activation \"ATTRIBUT_ sur_volume_initial_\"\n"; my $changement_option_ok = 0; open(FIC, "<$finfo"); open(FIC2, ">$finfo.tmp"); while() { if(/\#ATTRIBUT_/) { s/\#ATTRIBUT_/ATTRIBUT_/; $changement_option_ok = 1; } print FIC2; } close(FIC2); close(FIC); system("mv -f $finfo.tmp $finfo"); #suppression du .PI pour empecher un RESTART lors du calcul .CVisu2 my $suppression_PI_ok = 0; (my $fPI = $finfo) =~ s/.info$/.PI/; system("rm -f $fPI"); $suppression_PI_ok = 1 if(not (-e $fPI)); #reussite du script if($changement_option_ok and $suppression_PI_ok) { print "resultat pretrait : OK\n"; } elsif(not $changement_option_ok) { print "resultat pretrait : ECHEC l activation de l option \"ATTRIBUT_ sur_volume_initial_\" a echoue dans le fichier $finfo...\n"; die "\nErreur (prog:$NOM_PROG) : l activation de l option \"ATTRIBUT_ sur_volume_initial_\" a echoue dans le fichier $finfo...\n\n"; } elsif(not $suppression_PI_ok) { print "resultat pretrait : ECHEC la suppression du fichier .PI du calcul precedent a echoue...\n"; die "\nErreur (prog:$NOM_PROG) : la suppression du fichier .PI du calcul precedent a echoue...\n\n"; }