File "codage.pl"
Full Path: /home/analogde/www/XTRAIL/andre/PERL/codage.pl
File size: 3.51 KB
MIME-type: text/plain
Charset: 8 bit
#use strict;
#use warning;
$fichier = "PAT.csv";
my %min_PAT_HT = (); # tableau associatif vide
my %max_PAT_HT = ();
my %min_HT = ();
my %max_HT = ();
%test_name = ();
my %valeur = ();
traitement();
######################################
open (Handle, $fichier) || die ("Impossible d'ouvrir le fichier $fichier!");
while ($lignes = <Handle>)
{
($TEST,$PROPOSAL_MIN,$PROPOSAL_MAX,$ACTUAL_MIN,$ACTUAL_MAX,$TEST_NAME) = split( ',', $lignes);
$min_PAT_HT{$TEST} = $PROPOSAL_MIN;
$max_PAT_HT{$TEST} = $PROPOSAL_MAX;
$test_name{$TEST} = $TEST_NAME;
}
@liste_triee = sort( tri_numerique keys %min_PAT_HT); # nouveau tableau avec les clefs triees
$nbre_test=@liste_triee;
print "Global: $nbre_test \n";
#retourne une liste (table) contenant les cls de la table de hash.
@infos_cles = keys %hash;
@infos_valeurs = values %hash;
for ($i=0; $i<@liste_triee; $i++)
{
$r1=$test_name{$liste_triee[$i]};
$r2=$min_PAT_HT{$liste_triee[$i]};
print " ------------>$i:$liste_triee[$i]: $r1 : $r2 \n";
}
######################################
sub tri_numerique
{
if($a < $b)
{ return -1; }
elsif($a == $b)
{ return 0; }
else
{ return 1; }
}
######################################
close (Handle);
@lignes = ("");
open(HANDLE, "+<log.txt") || die "fichier non trouv\n"; # ouverture en lecture / criture
@lignes=<HANDLE>;
chomp($lignes=$lignes);
for ($i=0; $i<@lignes; $i++)
{
($TEST,$PROPOSAL_MIN,$PROPOSAL_MAX,$ACTUAL_MIN,$ACTUAL_MAX,$TEST_NAME)=split(/\|/, $lignes[$i]);
$min_PAT_HT{$TEST} = $PROPOSAL_MIN;
$max_PAT_HT{$TEST} = $PROPOSAL_MAX;
$test_name{$TEST} = $TEST_NAME;
}
######################################
open (NEWFICH, ">test.txt");
$blanc=" ";
#$len1 = length($datas[2]);
#print ("La longueur du spaceur : $len1");
#$len1 = length($datas[2]);
#print ("La longueur de la ligne est : $len1");
$un="essai";
$len2 = length($un);
$ch=substr($blanc,$len2+1);
$len3 = length($ch);
print ("La longueur du spaceur : $len3");
$res=$un.$ch;
$len3 = length($res);
print ("bilan : $len3 \n");
$datas[1]=$res;
$r=join('|', @datas);
print NEWFICH $r;
$extract_unites=$datas[1];
$extract_unites =~ s/[.0-9]| //gi; # supression des chiffres et du point
print "Units:$extract_unites\n";
seek(HANDLE,100,1);
$contenu = <HANDLE>;
print ("Le contenu de la ligne est : $contenu");
######################################
sub traitement()
{
charge();
affiche();
action();
}
######################################
sub action()
{
$taille = keys(%valeur);
while (($cles, $contenu) = each(%valeur))
{
$r1=$test_name{$cles};
print "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz $r1 \n";
}
@pipo = keys(%test_name); # Renvoie un tableau dans un ordre non prvisible
print "HHHHHHHHHHHHHHHHH @pipo\n";
for ($i=0; $i<@pipo; $i++)
{
print ">>>>>>>>>>>>>>>>$pipo[$i]<<<<<<<<<<<<<<<<<<<<<<\n"
}
while ($clef = each(%valeur))
{
$qiqi=$test_name{$clef};
#print "la cle $clef est associ avec: $qiqi\n";
}
}
######################################
sub affiche()
{
$taille = keys(%valeur);
while (($cles, $contenu) = each(%valeur))
{
print "$cles correspond $contenu\n";
}
}
######################################
sub charge()
{
@lignes = ("");
open(F, "<data.txt") || die "fichier non trouv\n";
while ($lignes = <F>)
{
($TEST,$MIN) = split(' ', $lignes);
$valeur{$TEST} = $MIN;
}
close (F);
}
######################################