Couleur selon un pourcentage ?

Couleur selon un pourcentage ? - Perl - Programmation

Marsh Posté le 01-07-2015 à 09:47:55    

Bonjour c'est encore moi  :)  
 
Je me demandais si c'était possible de donner de la couleur à un chiffre selon son pourcentage. Par exemple si mon pourcentage est inférieur à 10% lui donner la couleur bleu, si il est supérieur à 80% lui donner la couleur rouge. Est-ce possible ? Car là je bloque un peu, j'avais pensé à soit un tableau soit une table de hashage mais ça me paraît compliquer ?
 
Merci d'avance

Reply

Marsh Posté le 01-07-2015 à 09:47:55   

Reply

Marsh Posté le 01-07-2015 à 12:12:39    

Un petit exemple valant mieux qu'un long discours...
 

Code :
  1. use Term::ANSIColor;
  2.  
  3. sub calc_color {
  4.    # on devrait tester que le paramètre est bien un nombre
  5.    # si on n'est pas sur de ses appels
  6.    my $val = shift;
  7.    return ($val > 10)?"red":"blue";
  8. }
  9.  
  10. print colored(" This text is blue.\n", "blue" ), "\n";
  11. print colored(" This text is red.\n", "red" ), "\n";
  12. my $val = 7;
  13. print colored(" Val is $val\n", calc_color($val)), "\n";
  14. $val = 17;
  15. print colored(" Val is $val\n", calc_color($val)), "\n";


 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 01-07-2015 à 12:18:35    

Ok merci de l'exemple ;).
Je voyais ça un peu comme ça moi :
 

Code :
  1. if($pct <= 10)
  2.    {
  3.     print color 'cyan';
  4.    print $pct;
  5.     print color 'reset';
  6.     elsif($pct <= 50)
  7.     {
  8.        print color 'blue';
  9.       print $pct;
  10.        print color 'reset';
  11.     }
  12.     elsif($pct <= 80)
  13.     {
  14.        print color 'yellow';
  15.       print $pct;
  16.        print color 'reset';
  17.     }
  18.     elsif($pct <= 100)
  19.        print color 'red';  
  20.       print $pct;
  21.        print color 'reset';
  22.     }
  23.    }


 
$pct pour le pourcentage


Message édité par romyx1 le 01-07-2015 à 12:53:26
Reply

Marsh Posté le 01-07-2015 à 14:21:25    

Un truc dans ce genre alors:

Code :
  1. sub colored_pct {
  2.    my $pct = shift;
  3.    my $color;
  4.    if ($pct  <= 10) {
  5.     $color = 'cyan';
  6.    }
  7.    elsif ($pct <= 50){
  8.     $color = 'blue';
  9.    }
  10.    elsif ($pct <= 80){
  11.     $color = 'yellow';
  12.    }
  13.    elsif ($pct <= 100){
  14.     $color = 'red';
  15.    }
  16.    return colored($pct, $color);
  17. }
  18.  
  19. print colored_pct(5), "\n", colored_pct(15), "\n", colored_pct(55), "\n", colored_pct(85), "\n";


 
colored, ça permet de taper moins:
print colored($pct, 'cyan');
c'est exactement pareil que:
print color 'cyan';  
print $pct;
print color 'reset';
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 01-07-2015 à 14:38:53    

Oh merci du tips ! Je vais le changer alors dans mon script ça va me faire gagner des lignes :sol:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed