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 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
| #!/usr/bin/perl -w
use strict;
my $t = 80;
print tableau($t,"-");
print tableau($t,gauche($t,"Essai de tableau"));
print tableau($t,droite($t,"Essai de tableau"));
print tableau($t,centre($t,color('vert_inv',"Essai de tableau")));
print tableau($t,"-");
my $texte1 = color('vert_inv',"Essai de tableau");
my $texte2 = "Essai de tableau";
my $l1 = length ($texte1);
my $l2 = length ($texte2);
print "$l1 - $l2\n";
#print "Calcul longueur :: ".calculLongueurTexte($texte1);
sub color {
my $couleur = $_[0];
my $texte = $_[1];
my %def_couleur = (
rouge => 31,
vert => 32,
jaune => 33,
bleu => 34,
violet => 35,
turquoise => 36,
gris => 37,
rouge_inv => 41,
vert_inv => 42,
jaune_inv => 43,
bleu_inv => 44,
violet_inv => 45,
turquoise_inv => 46,
gris_inv => 47,
);
my $texte_couleur = "\033[".$def_couleur{$couleur}."m".$texte."\033[m";
return "$texte_couleur";
}
sub tableau {
my $taille = $_[0];
my $texte = $_[1];
$taille = $taille-2;
my $ligne;
if ( $texte eq "-" ) {
$ligne = "+"."-"x$taille."+\n";
}
else {
$ligne ="| ".$texte." |\n";
}
return $ligne ;
}
sub centre {
my $taille = $_[0];
my $texte = $_[1];
#my $long = $taille - length ($texte) -4;
my $long = $taille - calculLongueurTexte($texte) - 4;
my $demi = int($long/2);
my $reste = $long%2;
$texte = " "x$demi.$texte." "x$demi." "x$reste;
return $texte;
}
sub gauche {
my $taille = $_[0];
my $texte = $_[1];
#my $long = $taille - length ($texte) -4;
my $long = $taille - calculLongueurTexte($texte) - 4;
$texte = $texte." "x$long;
return $texte;
}
sub droite {
my $taille = $_[0];
my $texte = $_[1];
#my $long = $taille - length ($texte) -4;
my $long = $taille - calculLongueurTexte($texte) - 4;
$texte = " "x$long.$texte;
return $texte;
}
sub calculLongueurTexte{
my $texte = $_[0];
$texte =~ s/\033\[\d{2}m//;
$texte =~ s/\033\[m//;
return length( $texte );
} |
Partager