1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| use strict;
use warnings;
use Spreadsheet::WriteExcel;
# Create a new workbook and add a worksheet
my $workbook = Spreadsheet::WriteExcel->new('C:\\Documents and Settings\\fonctionnement_excel.xls');
my $worksheet = $workbook->add_worksheet('Test data');
my $fichier_log = "C:\\Trace_20140611_100702.log"; # Emplacement du fichier "fichier_log"
my $fh_log;
open ($fh_log, '<', $fichier_log) or die "Impossible d'ouvrir le fichier en lecture"; # Ouverture du fichier pour la lecture
# Set the column width for columns 1
$worksheet->set_column(0, 0, 45);
# Create a format for the headings
my $format = $workbook->add_format();
$format->set_bold();
my $start_time_postural_assessment;
while(my $ligne = <$fh_log>) # Lire chaque ligne du fichier fh_log
{
my($heure, $minute, $seconde, $milliseconde)=$ligne =~ /(\d\d):(\d\d):(\d\d).(\d\d\d)/; # Initialisation des variables de l'heure
my $end_time_postural_assessment; # Initialisation de end_time_postural_assessment
if ($ligne =~ /Postural assessment settings/) # Si "Postural assessment settings" est écrit dans une ligne
{
$cpt_postural_assessment_study++; # Incrémentation du compteur
my($heure, $minute, $seconde, $milliseconde)=$ligne =~ /(\d\d):(\d\d):(\d\d).(\d\d\d)/;
$start_time_postural_assessment = (((($heure * 60)+ $minute) *60 + ($seconde+($milliseconde/1000)))/60); # Calculer la valeur de start_time_postural_assessment
}
elsif ($ligne =~ /Postural assessment complete/)
{
my($heure, $minute, $seconde, $milliseconde)=$ligne =~ /(\d\d):(\d\d):(\d\d).(\d\d\d)/;
$end_time_postural_assessment = (((($heure * 60)+ $minute) *60 + ($seconde+($milliseconde/1000)))/60); # Calculer la valeur de end_time_postural_assessment
}
if (defined $end_time_postural_assessment) # Si end_time_postural_assessment existe
{
my $temps_postural_assessment = ($end_time_postural_assessment) - ($start_time_postural_assessment) if defined $end_time_postural_assessment; # Calculer la valeur de temps_postural_assessment
$temps_postural_assessment = sprintf("%0.2f", $temps_postural_assessment); # Arrondir la valeur de temps_postural_assessment avec 2 chiffres après la virgule
my $temps_heures_postural_assessment = $temps_postural_assessment/60; # Calculer la valeur de temps_heures_postural_assessment
$temps_heures_postural_assessment = sprintf("%0.2f", $temps_heures_postural_assessment); # Arrondir la valeur de temps_heures_postural_assessment avec 2 chiffres après la virgule
$worksheet -> write (5,0,"Etude numero $cpt_postural_assessment_study de la posture globale", $format);
$worksheet -> write (5,1,"$temps_postural_assessment",$format); # Ecrire dans le fichier compteur_workflow_temps.txt
$worksheet -> write (5,2, 'minutes',$format);
$worksheet -> write (6,1, "$temps_heures_postural_assessment", $format);
$worksheet -> write (6,2,'heures',$format);
}
}
close $fh_log; # Fermeture du fichier fh_txt |
Partager