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 60 61 62 63 64 65 66 67 68 69
| sub CheckDatTables() {
print "_________________________________________ CheckDatTables\n";
my ($s_samplesize, $s_dtc,$s_cmp, $s_rng, $s_qf, $s_sc ) = (0, 0,0,0,0,0); # inititialisation
my ($s_status, $s_dmc,$s_de,$s_pr, $s_pcmp, $s_psc, $s_pqf, @s_lfd, @s_lld, @s_infodat);
foreach my $s_project (%datdir){
$s_samplesize = scalar @{$datdir{$s_project}}; # Taille de l'echantillon d'etude
#my @s_ldat;
foreach my $s_fdat (@{$datdir{$s_project}}){
open(FHdat, "$s_fdat") or die "Impossible d'ouvrir le fichier $s_fdat";
while (my $line = <FHdat>)
{
chomp ($line);
# print "$line\n";
if ($line=~/^\/\// || $line =~ /^$/) { next;}
#next if ( $line = ~/^\/\//) ; # on ignore les lignes commençanr pat un //
else {
my ($s_var,$s_val)=split /=/, $line, 2 ; # on divise la ligne en deux parties separée par un "="
switch( $s_var)
{
case (/^qtsatus$/) {
if ($s_val==1) {$s_rng +=1; }
if ($s_val==2) {$s_cmp +=1; }
if ($s_val==3) {$s_sc +=1; }
if ($s_val==4) {$s_qf +=1; }
}
case (/^CW_duration$/) { $s_dtc +=$s_val; } # on cumule les duree de connexion
case (/^CW_firstdate$/) { push @s_lfd , $s_val; } # on met dans s_lfd les valeurs des "firstdate"
case (/^CW_lastedate$/) { push @s_lld , $s_val; } # on met dans s_lld les valeurs des "lastdate"
# next if !exists $datvar{$s_var} ;
}
}
}
close(FHdat);
#_=== Calcul ===
$s_dmc = $s_dtc/$s_samplesize; # duree moyenne de connexion
$s_pr = ($s_rng/$s_samplesize)*100; # % de runing
$s_pcmp =($s_cmp/$s_samplesize)*100; # % de complet
$s_psc =($s_sc/$s_samplesize)*100; # % de screenout
$s_pqf = ($s_qf/$s_samplesize)*100; # % de quotafull
#_=== Calcul de la duree du terrain ===
my @s_lfdtriee = sort @s_lfd;
my @s_lldtriee = sort @s_lld;
my $plusancien = $s_lfdtriee [0]; # la plus ancienne date des firstdate
my $plusrecent = $s_lldtriee [-1]; # la plus recente date des lastdate
#print "Date de lancement de l'etude : $plusancien\n";
#print "Date de cloture de l'etude : $plusrecent\n";
my ( $annee1, $mois1, $jour1 ) = $plusancien =~ m/(\d{4})(\d{2})(\d{2})/;
#print "$annee1\t$mois1\t$jour1\n";
print "$plusancien => $annee1, $mois1, $jour1\n";
my ( $annee2, $mois2, $jour2 ) = $plusrecent =~ m/(\d{4})(\d{2})(\d{2})/;
print "$plusrecent\n";
my $s_projectduration = Delta_Days( ( $annee1, $mois1, $jour1 ), ( $annee2, $mois2, $jour2 ) );
#print "Duree de terrain: $s_projectduration jours\n";
#===== Une table de sortie contenant les infos des .dat d'un project =====#
push @s_infodat, $s_samplesize,$s_projectduration, $s_dtc, $s_dmc, $s_pr,$s_pcmp, $s_psc, $s_pqf;
close (FHdat);
${$datinfo{$s_project}} = [@s_infodat];
}
}
#_=== Affichage test de %datinfo ===
print Data::Dumper->Dump([\%datinfo], [qw(*datinfo)]); # les dat
} |