1. #41
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2012
    Messages
    3 472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mai 2012
    Messages : 3 472
    Points : 11 332
    Points
    11 332
    Billets dans le blog
    1

    Par défaut

    Je crois que tu es plus ou mois obligé de spécifier ce que tu désires en détail. Je ne vois pas trop ce que l'on pourrait automatiser sur un tableau aussi simple. Tu pourrais alimenter des cellules (en colonnes par exemple) au sein d'une boucle, mais là in n'y a pas de données pour boucler.

    A la limite il serais possible de construire à l'avance des listes pour alimenter les cellules dans une boucle, mais je ne crois pas que tu y gagneras grand chose sur un tableau aussi petit.

    Cela dit, je ne suis pas du tout expert de ce module, je ne l'ai utilisé que quelques rares fois, et la dernière fois il y a bien quatre ou cinq ans.

  2. #42
    Membre habitué
    Homme Profil pro
    Informatique
    Inscrit en
    mars 2013
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informatique

    Informations forums :
    Inscription : mars 2013
    Messages : 203
    Points : 164
    Points
    164

    Par défaut

    Salut Lolo,

    Merci pour ta réponse.
    J'ai effectivement fait "à la main" et c'était rapide.
    Donc comme tu l'indiques, ce n'est pas intéressant sur un si petit tableau.

  3. #43
    Membre habitué
    Homme Profil pro
    Informatique
    Inscrit en
    mars 2013
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informatique

    Informations forums :
    Inscription : mars 2013
    Messages : 203
    Points : 164
    Points
    164

    Par défaut

    Salut Lolo,

    J'ai deux petites questions.
    Tout d'abord, voici le script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    #!/usr/bin/perl
    use strict;
    use warnings;
     
    my %count;
    my $saut = 1;
    #my $fichier = "SVTEST.txt";
    my $fichier = "SVC_DMZ_NBB2.txt";
    my $number=0;
    open my $FH, "<", $fichier or die "Ouverture impossible du fichier $fichier";
     
     
    while (my $line = <$FH>) {
    	$saut = 0 if $line =~ /^id:name:IO_group_id:/;
    	next if $saut;
    	my ($name, $capacity) =  (split /:/, $line)[1, 7];
     
    	if ($capacity =~ /^(\d+\.\d+)(\w+)$/) {
    		my $number = $1;
    		my $type = $2;
     
    		#print "$number $type \n"; #Pour test
    		$number = $number / 1000.0 if $type eq 'GB'; #Convertis en TB si le type est GB
    		#SQL#
    		if ($name =~ /SQL/xmsi) {
    			$count{SQL} += $number;
    		#ORACLE#	
    		} elsif ($name =~ /OR\d/xmsi) {
    			$count{Oracle} += $number;
    		#SOLARIS#		
    		} elsif ($name =~ /SCN/xmsi or $name =~ /SUN/xmsi) {
    			$count{Solaris} += $number;
    		#FILE SERVER#
    		} elsif ($name =~ /CLUFIL/xmsi or $name =~ /CLUDAT/xmsi or $name =~ /CLUWIN/xmsi) {
    			$count{Filer} += $number;
    		#VMWARE#
    		} elsif ($name =~ /VMware/xmsi or $name =~ /SRV/xmsi) {
    			$count{VMware} += $number;
    		#ARCHIVING#
    		} elsif ($name =~ /ARCHP/xmsi or $name =~ /ARCP/xmsi) {
    			$count{Archiving} += $number;
    		#NETBACKUP#
    		} elsif ($name =~ /NBU/xmsi or $name =~ /OPS/xmsi) {
    			$count{NetBackup} += $number;
    		#PAS ENCORE DE CATEGORIE#	
    		} else {
    			$count{Other} += $number;
    			#$count{"ZZ_".$name} += $number;
    		}
    	};
     
    }
    close($FH);
     
    use Excel::Writer::XLSX;
    use Spreadsheet::WriteExcel;
     
    my $workbook = Excel::Writer::XLSX->new('test.xlsx') ;
    my $worksheet = $workbook->add_worksheet('Data');
    my $chart = $workbook->add_chart(type=>'column');
    my $bold = $workbook->add_format(bold => 1); #For titles
     
    #For Titles of EXCEL
    my $format = $workbook->add_format(
                                            border  => 6,
                                            valign  => 'vcenter',
                                            align   => 'center',
    										size	=> 18,
    										bold	=> 1,
                                          );
     
    ##############################DATA##############################
    $worksheet->merge_range('A1:F1', 'Capacity by types (Terabytes)', $format);
    $worksheet->set_column('A:A', 10);
     
    $worksheet->write("A2","Archiving", $bold);
    $worksheet->write("B2","$count{Archiving}");
     
    $worksheet->write("A3","Filer", $bold);
    $worksheet->write("B3","$count{Filer}");
     
    $worksheet->write("A4","NetBackup", $bold);
    $worksheet->write("B4","$count{NetBackup}");
     
    $worksheet->write("A5","Oracle", $bold);
    $worksheet->write("B5","$count{Oracle}");
     
    $worksheet->write("A6","SQL", $bold);
    $worksheet->write("B6","$count{SQL}");
     
    $worksheet->write("A7","Solaris", $bold);
    $worksheet->write("B7","$count{Solaris}");
     
    $worksheet->write("A8","VMware", $bold);
    $worksheet->write("B8","$count{VMware}");
     
    $worksheet->write("A9","Other", $bold);
    $worksheet->write("B9","$count{Other}");
     
    $worksheet->write("A10","Total", $bold);
    $worksheet->write("B10","=SUM(B2:B9)");
    ##############################DATA##############################
     
    ##############################CHART##############################
    $chart->add_series(
    	name => '=Data!$A$2',
    	values => '=Data!$B$2');
     
    $chart->add_series(
    	name => '=Data!$A$3',
    	values => '=Data!$B$3');
     
    $chart->add_series(
    	name => '=Data!$A$4',
    	values => '=Data!$B$4');
     
    $chart->add_series(
    	name => '=Data!$A$5',
    	values => '=Data!$B$5');
     
    $chart->add_series(
    	name => '=Data!$A$6',
    	values => '=Data!$B$6');
     
    $chart->add_series(
    	name => '=Data!$A$7',
    	values => '=Data!$B$7');
     
    $chart->add_series(
    	name => '=Data!$A$8',
    	values => '=Data!$B$8');
     
    $chart->add_series(
    	name => '=Data!$A$9',
    	values => '=Data!$B$9');
    ##############################CHART##############################
     
    $chart->set_title(name => 'SVC Capacity by types');
    $chart->set_x_axis(name => 'Types');
    $chart->set_y_axis(name => 'Capacity (Terabytes)');
     
    $workbook->close;
     
    #print "Capacity for $_ = $count{$_} TB\n" for sort keys %count;
    Maintenant voici les questions :

    1) J'ai finalement plusieurs fichiers à traiter (Un qui est "CORP" et un "DMZ" pour te mettre dans le contexte). Ils comportent exactement (ou presque) les mêmes types d'informations. Comment puis-je faire ? Je concatenne d'abord les fichiers ensembles ? Ou après la première lecture j'en refais une nouvelle ? Dans mon fichier Excel généré j'aimerai séparer "CORP" et "DMZ", donc je suppose que c'est peut-être mieux de faire deux lectures?
    2) 2eme question, j'ai des "MB" aussi de temps en temps maintenant dans les fichiers. Du coup je dois les convertir aussi en "TB" (sinon il me les prends comme des TB). J'ai testé deux trois trucs, mais ça fonctionne pas ou j'ai des erreurs et le scripts ne continue pas ...

    Merci d'avance pour ton aide!

  4. #44
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2012
    Messages
    3 472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mai 2012
    Messages : 3 472
    Points : 11 332
    Points
    11 332
    Billets dans le blog
    1

    Par défaut

    Bonjour,

    pour la première question, à mon avis, le plus simple est de lire tes deux fichiers successivement et de stocker tes décomptes dans deux hachages différents. Toutefois, il faudrait éviter de dupliquer le code et donc sans doute mettre toute la lecture du fichier en entrée dans une fonction que tu appelles deux fois, une fois pour chaque fichier, et remplissant un hachage différent à chaque fois.

    Par exemple quelque chose comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    my %count_dmz = fill_hash ("SVC_DMZ_NBB2.txt");
    my %count_corp = fill_hash ("fichier_corp.txt";
     
    # ...
     
    sub fill_hash {
        my $fichier = shift;
        open my $FH, "<", $fichier or die "Ouverture impossible du fichier $fichier";
        my %count:
        my $saut = 1;
        while (my $line = <$FH>) {
            # tout ton code de lecture des lignes du fichier ici
        }
        close $FH;
        return %count;
    }
    Ici, la fonction fill_hash ouvre le fichier reçu en paramètre, lit son contenu dans le hachage local %count, ferme le fichier et renvoie le hachage à l'appelant. Cette fonction est appelée une fois pour chaque fichier et renvoie le contenu voulu dans deux hachages différents. Tu peux ensuite utiliser ces deux hachages (%count_dmz et %count_corp) pour remplir ton fichier Excel.

    S'il est plausible que tu aies ensuite d'autres nouveaux fichiers, alors il est peut-être préférable d'utiliser un hachage de hachages, mais c'est un peu plus compliqué si tu n'as pas l'habitude.

    Pour la seconde question, je ne vois pas pourquoi tu ne peux pas simplement ajouter une ligne analogue à celle pour les gigaoctets:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    		$number = $number / 1000 if $type eq 'GB';       #Convertis en TB si le type est GB
    		$number = $number / 1000000 if $type eq 'MB';    #Convertis en TB si le type est MB

  5. #45
    Membre habitué
    Homme Profil pro
    Informatique
    Inscrit en
    mars 2013
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informatique

    Informations forums :
    Inscription : mars 2013
    Messages : 203
    Points : 164
    Points
    164

    Par défaut

    Hello Lolo,

    Merci beaucoup ça fonctionne très bien.
    Pour la conversation en fait je sais pas ce que je faisais mais je fais des AND ou je ne sais quoi ... J'ai essayé plein de trucs compliqué, mais pas le plus simple : Comme tu as fais.

    Je vais me renseigner sur le hachage de hachage, car je pense que j'aurai au total 4 fichiers à lire au final.

    Merci
    Original

  6. #46
    Membre habitué
    Homme Profil pro
    Informatique
    Inscrit en
    mars 2013
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informatique

    Informations forums :
    Inscription : mars 2013
    Messages : 203
    Points : 164
    Points
    164

    Par défaut

    Bonjour Lolo,

    Question très stupide, mais j'ai testé deux-trois trucs et je ne comprends pas pourquoi ça ne passe pas ... Surement dû au Hachage ? Bizarre ..
    Voici le script pour te remettre dans le bain (sans la partie Excel) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    #!/usr/bin/perl
    use strict;
    use warnings;
     
    my %count; #hachage local -> le contenu des fichiers et lu dans ce hachage à l'instant T
    my %count_corp = fill_hash ("SVC_CORP_NBB2.txt"); #fill_hash ouvre le fichier reçu en paramètre, ferme le fichier et renvoie le contenu dans %count_
    my %count_dmz = fill_hash ("SVC_DMZ_NBB2.txt"); #fill_hash ouvre le fichier reçu en paramètre, ferme le fichier et renvoie le contenu dans %count_
    my $saut = 1;
    my $number=0;
     
     
    #open my $FH, "<", $fichier or die "Ouverture impossible du fichier $fichier";
     
    sub fill_hash {
     
    my $fichier = shift;
    open my $FH, "<", $fichier or die "Ouverture impossible du fichier $fichier";
    my %count;
    my $saut = 1;
     
    while (my $line = <$FH>) {
    	$saut = 0 if $line =~ /^id:name:IO_group_id:/;
    	next if $saut;
    	my ($name, $capacity) =  (split /:/, $line)[1, 7];
     
    	if ($capacity =~ /^(\d+\.\d+)(\w+)$/) {
    		my $number = $1;
    		my $type = $2;
     
    		#print "$number $type \n"; #Pour test
    		$number = $number / 1000 if $type eq 'GB'; #Convertis en TB si le type est GB
    		$number = $number / 1000000 if $type eq 'MB'; #Convertis en TB si le type est MB
     
    		#SQL#
    		if ($name =~ /SQL/xmsi) {
    			$count{SQL} += $number;
    		#ORACLE#	
    		} elsif ($name =~ /OR\d/xmsi) {
    			$count{Oracle} += $number;
    		#SOLARIS#		
    		} elsif ($name =~ /SCN/xmsi or $name =~ /SUN/xmsi) {
    			$count{Solaris} += $number;
    		#FILE SERVER#
    		} elsif ($name =~ /CLUFIL/xmsi or $name =~ /CLUDAT/xmsi or $name =~ /CLUWIN/xmsi) {
    			$count{Filer} += $number;
    		#VMWARE#
    		} elsif ($name =~ /VMware/xmsi) {
    			$count{VMware} += $number;
    		#ARCHIVING#
    		} elsif ($name =~ /ARCHP/xmsi or $name =~ /ARCP/xmsi) {
    			$count{Archiving} += $number;
    		#NETBACKUP#
    		} elsif ($name =~ /NBU/xmsi or $name =~ /OPS/xmsi) {
    			$count{NetBackup} += $number;
    		#PAS ENCORE DE CATEGORIE#	
    		} else {
    			$count{Other} += $number;
    			#$count{"ZZ_".$name} += $number;
    		}
    	};
    }
    close($FH);
    return %count;
    Avec $count_corp{XXXX} et $count_dmz{XXXX} je récupére donc les valeurs que j'insère ensuite dans mon fichier Excel, sans soucis.
    A un moment donné, pour testé, et voir les lignes qui n'était pas catégorisé, j'avais ajouté cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #$count{"ZZ_".$name} += $number;
    Puis via la ligne que toi m'avais donné, je les affichés
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print "Capacity for $_ = $count{$_} TB\n" for sort keys %count;
    J'ai essayé de les ré-afficher (et donc en ne les classant plus dans $count{Other}) mais cela ne fonctionne pas ?
    En fait, mon but actuellement, et je ne sais pas si c'est possible, c'est, effectivement en faire un total dans {Other} mais également les affichés pour les ajotués dans mon Excel...

    Je suis sur que c'est tellement débile que tu vas m'engueuler

    Merci !

  7. #47
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2012
    Messages
    3 472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mai 2012
    Messages : 3 472
    Points : 11 332
    Points
    11 332
    Billets dans le blog
    1

    Par défaut

    Je ne comprends pas bien quel est ton problème.

    J'ai testé ce bout de code qui fait à peu près ce que fait ton programme, du moins en terme d'alimentation d'un hachage (et, bien sûr, sans les fichiers en entrée):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    use strict;
    use warnings;
    use Data::Dumper;
     
    my %count;
    $count{toto} = 1;
    $count{titi} = 2;
    for my $name (qw /tutu tata/) {
        $count{Other} += 5;
        $count{"ZZ_" . $name } = 5;
    }
    print "Capacity for $_ = $count{$_} TB\n" for sort keys %count;
    print "\n" x 3;
    print Dumper \%count;
    Et ça marche comme prévu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    Capacity for Other = 10 TB
    Capacity for ZZ_tata = 5 TB
    Capacity for ZZ_tutu = 5 TB
    Capacity for titi = 2 TB
    Capacity for toto = 1 TB
     
     
     
    $VAR1 = {
              'Other' => 10,
              'toto' => 1,
              'ZZ_tutu' => 5,
              'titi' => 2,
              'ZZ_tata' => 5
            };
    Note au passage l'utilisation de use Data::Dumper; et de la ligne print Dumper \%count; pour afficher le contenu du hachage. C'est un instrument de débogage très utile, surtout quand tu commences à travailler avec des structures de données un peu complexes.

    Donc, je ne comprends pas exactement où se situe ton problème. Ai-je mal compris?

  8. #48
    Membre habitué
    Homme Profil pro
    Informatique
    Inscrit en
    mars 2013
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informatique

    Informations forums :
    Inscription : mars 2013
    Messages : 203
    Points : 164
    Points
    164

    Par défaut

    Salut Lolo,

    Ne t'en fais pas, tu n'as surement pas mal compris, c'est plutôt moi qui m'explique mal

    En fait, j'aimerai récupérer le contenu de Other (Donc $name & $capacity) en plus du total (comme actuellement) pour pouvoir, en plus d'en faire le calcul (somme), les afficher à part sur mon Excel par exemple.
    Donc, bêtement :
    Name1 = 2.00TB
    Name2 = 2.00TB
    Name3 = 3.00TB

    En gros, faire comme au début du script, mais en plus les ajouter dans le fichier Excel.

    J'ai testé plusieurs choses, dont ce que tu proposes, et rien n'en retourne, le VAR1 est vide chez moi ...

    Ci-joint, ma script complet. Ca sera peut-être plus simple.
    Fichiers attachés Fichiers attachés

  9. #49
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2012
    Messages
    3 472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mai 2012
    Messages : 3 472
    Points : 11 332
    Points
    11 332
    Billets dans le blog
    1

    Par défaut

    A vue de nez, si ton hash ne contient pas des entrées pour "Other" et pour "ZZ_xxx", c'est que tu ne passes jamais sans le <C>else</C> de ta grosse instruction conditionnelle, donc que le cas de figure ne se produit pas avec tes données en entrée.

    Peux-tu montrer ce qu'affiche le Dumper du hachage (si ce n'est pas trop gros)?

  10. #50
    Membre habitué
    Homme Profil pro
    Informatique
    Inscrit en
    mars 2013
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informatique

    Informations forums :
    Inscription : mars 2013
    Messages : 203
    Points : 164
    Points
    164

    Par défaut

    Salut Lolo,

    Petite mise à jour.
    Je réussi à afficher maintenant comme avant le contenu de count pour toutes mes boucles et ca fonctionne.
    En fait maintenant, mon but, c'est de savoir comment je peux travailler sur le retour des ZZ_$name ?
    Que dois-je utiliser ? C'est ça que je n'y arrive pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Capacity for ZZ_V_SVCC_NBB4_SWPNCNDATP01_N_036F_MA = 0.05 TB
    Capacity for ZZ_V_SVCC_NBB4_SWPNCNDATP01_O_0370_MA = 0.025 TB
    Capacity for ZZ_V_SVCC_NBB4_SWPNCNDATP01_P_0371_MA = 0.02 TB
    Capacity for ZZ_V_SVCC_NBB4_SWPNCNDATP01_Q_0372_MA = 0.02 TB
    Capacity for ZZ_V_SVCC_NBB4_SWPNCNDATP01_R_0373_MA = 0.01 TB
    Capacity for ZZ_V_SVCC_NBB4_SWPNCNDATP01_S_0374_MA = 0.01 TB
    J'aimerai récupérer ceci et les afficher dans mon fichier Excel en fait, je sais juste pas comment les traiter, pourtant je suis sur que c'est facile...
    Fichiers attachés Fichiers attachés

  11. #51
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2012
    Messages
    3 472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mai 2012
    Messages : 3 472
    Points : 11 332
    Points
    11 332
    Billets dans le blog
    1

    Par défaut

    Bonjour,

    c'est quoi au juste que tu n'arrives pas à faire?

    Je ne sais pas si c'est ce que tu recherches, mais pour afficher les données correspondant à "ZZ*":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print "Capacity for $_ = $count{$_} TB\n" for grep { /^ZZ/ } keys %count;

  12. #52
    Membre habitué
    Homme Profil pro
    Informatique
    Inscrit en
    mars 2013
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informatique

    Informations forums :
    Inscription : mars 2013
    Messages : 203
    Points : 164
    Points
    164

    Par défaut

    J'y arrive ça, mais en fait j'aimerai pouvoir les insérer dans mon Excel.
    J'ai essayé de mettre ça dans une variable mais ça ne fonctionne pas

    Donc en gros mettre toute la liste des ZZ_ dans mon fichier excel

  13. #53
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2012
    Messages
    3 472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mai 2012
    Messages : 3 472
    Points : 11 332
    Points
    11 332
    Billets dans le blog
    1

    Par défaut

    Désolé, mais je n'arrive toujours pas à comprendre ce que tu n'arrives pas à faire.

    Si tu veux récupérer les clefs "ZZ_*" dans un tableau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    my @clefs = grep { /^ZZ/ } keys %count;
    Ou, pour récupérer les valeurs dans un tableau:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    my @valeurs = map {$count{$_}} grep { /^ZZ/ } keys %count;

  14. #54
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2012
    Messages
    3 472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mai 2012
    Messages : 3 472
    Points : 11 332
    Points
    11 332
    Billets dans le blog
    1

    Par défaut

    Bonjour,

    un commentaire pour t'aider à gagner du temps en écrivant du code nettement plus concis.

    Ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    $worksheet->write("A3","Archiving", $Datatype);
    $worksheet->write("B3","$count_corp_nbb2{Archiving}", $Data);
    $worksheet->write("C3","$count_corp_nbb4{Archiving}", $Data);
     
    $worksheet->write("A4","Filer", $Datatype);
    $worksheet->write("B4","$count_corp_nbb2{Filer}", $Data);
    $worksheet->write("C4","$count_corp_nbb4{Filer}", $Data);
     
    $worksheet->write("A5","NetBackup", $Datatype);
    $worksheet->write("B5","$count_corp_nbb2{NetBackup}", $Data);
    $worksheet->write("C5","$count_corp_nbb4{NetBackup}", $Data);
     
    $worksheet->write("A6","Oracle", $Datatype);
    $worksheet->write("B6","$count_corp_nbb2{Oracle}", $Data);
    $worksheet->write("C6","$count_corp_nbb4{Oracle}", $Data);
     
    $worksheet->write("A7","SQL", $Datatype);
    $worksheet->write("B7","$count_corp_nbb2{SQL}", $Data);
    $worksheet->write("C7","$count_corp_nbb4{SQL}", $Data);
     
    $worksheet->write("A8","Solaris", $Datatype);
    $worksheet->write("B8","$count_corp_nbb2{Solaris}", $Data);
    $worksheet->write("C8","$count_corp_nbb4{Solaris}", $Data);
     
    $worksheet->write("A9","VMware", $Datatype);
    $worksheet->write("B9","$count_corp_nbb2{VMware}", $Data);
    $worksheet->write("C9","$count_corp_nbb4{VMware}", $Data);
     
    $worksheet->write("A10","Other", $Datatype);
    $worksheet->write("B10","$count_corp_nbb2{Other}", $Data);
    $worksheet->write("C10","$count_corp_nbb4{Other}", $Data);
     
    $worksheet->write("A11","Total", $TypeBottom);
    $worksheet->write("B11","=SUM(B3:B10)", $DataBottom);
    $worksheet->write("C11","=SUM(C3:C10)", $DataBottom);
    peut se réécrire en quelque chose comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    my $compteur = 3;
    for my $items (qw / Archiving Filer NetBackup Oracle SQL 
                        Solaris VMware Other Total /) {
        $worksheet->write("A$compteur","$item", $Datatype);
        $worksheet->write("B$compteur","$count_corp_nbb2{$item}", $Data);
        $worksheet->write("C$compteur","$count_corp_nbb4{$item}", $Data);
        $compteur ++;
    }
    Et tu peux faire à peu près la même chose pour tes autres séries.

  15. #55
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2012
    Messages
    3 472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mai 2012
    Messages : 3 472
    Points : 11 332
    Points
    11 332
    Billets dans le blog
    1

    Par défaut

    Finalement, à l'examen de ton code, je crois comprendre que tu ne sais pas comment boucler sur les valeurs du hachage pour utiliser les clefs "ZZ_" et leurs valeurs.

    En supposant que tu veuilles mettre tes valeurs "Other" (ou plus exactement "ZZ_*") sur les colonnes J et K de ta feuille Excel, à partir de la ligne 3, tu devrais pouvoir faire un truc dans ce genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    my $cpt = 3;
    for my $items (grep { /^ZZ_/ } keys %count) {
        $worksheet->write("J$cpt", $count{$item}, $Data);
        $worksheet->write("K$cpt", $count{$item}, $Data);
        $cpt ++;
    }
    En cas de besoin, tu peux ajouter un tri des clefs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    # ...
    for my $items (sort grep { /^ZZ_/ } keys %count) {
    # ...
    ou même un tri sur les valeurs (là, demande-moi si c'est ce que tu veux, mais teste déjà ce que je t'ai proposé).

  16. #56
    Membre habitué
    Homme Profil pro
    Informatique
    Inscrit en
    mars 2013
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informatique

    Informations forums :
    Inscription : mars 2013
    Messages : 203
    Points : 164
    Points
    164

    Par défaut

    Bonjour Lolo,

    Tout d'abord merci pour tes messages et tes conseils j'ai pu nettement améliorer le script.
    Tu es bien compris ce que j'aimerai faire. En plus d'avoir les totaux de "Other", j'aimerai afficher dans des autres colonnes les "ZZ_" + la capacité associé.

    Ca je n'y arrive pas et ton bout de code n'y fait rien, pas de message d'erreur etle fichier Excel ne bouge pas

    Merci!

  17. #57
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2012
    Messages
    3 472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mai 2012
    Messages : 3 472
    Points : 11 332
    Points
    11 332
    Billets dans le blog
    1

    Par défaut

    Bonjour,

    Difficile de t'aider sans voir tes données en entrée. Il faut que tu apprennes à déboguer par tes propres moyens.

    D'abord, je te conseillerais vivement de lire attentivement la FAQ sur le débogage en Perl, tout particulièrement cette question-ci.

    Dans le cas de ton programme, pour comprendre pourquoi tu n'as pas d'affichage des clefs "ZZ_" dans le fichier Excel, il faut d'abord savoir s'il y en a bien dans ton hachage %count et regarder de quoi ces enregistrements ont l'air.

    Donc, je te conseille d'ajouter la ligne suivante au début de ton script:
    Puis, au moment où tu as fini d'alimenter ce hachage et t'apprêtes à l'utiliser pour alimenter la feuille Excel, d'ajouter la ligne suivante dans ton code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print Dumper \%count;
    Et de poster ici ce que t'affiche cette commande à l'écran.

  18. #58
    Membre habitué
    Homme Profil pro
    Informatique
    Inscrit en
    mars 2013
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informatique

    Informations forums :
    Inscription : mars 2013
    Messages : 203
    Points : 164
    Points
    164

    Par défaut

    Bonjour Lolo
    Je lis tout ça.
    Sinon ça me retourne plein de ligne dans ce style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    $VAR1 = {
              'ZZ_V_SVCC_NBB2_SRVMBXP24_L_0521_NM' => '0.5',
              'ZZ_V_SVCC_NBB2_SWPNCMEVEP02_G_0182_MA' => '1.46',
              'ZZ_V_SVC_NBB2_CLUVDA_VSWVDA10_C_0498_AU' => '0.015',
              'ZZ_V_SVCC_NBB2_VDABEEL_01' => '0.001',
              'ZZ_V_SVCC_NBB2_SLPNALSTAP01_dbbackup_0460_AU' => '0.2',
              'ZZ_V_SVCC_NBB2_SWPNCNDATP01_S_03F7_AU' => '0.01',
              'ZZ_vdasplitter' => '0.001',
              'ZZ_V_SVCC_NBB2_CWPNCMTSTX10_Data04_04F4_P_MA' => '0.02',
              'ZZ_V_SVCC_NBB2_SWPNCMEVEP02_I_0260_MA' => '0.06',
              'ZZ_V_SVCC_NBB2_SWPNCNDATP01_P_03F4_AU' => '0.02',
              'ZZ_V_SVCC_NBB2_SLPNAMSPLP02_SPLUNK1of2_MA' => '0.5',
              'ZZ_V_SVCC_NBB2_SLPNAMSPLP02_SPLUNK2of2_MA' => '0.5',
              'ZZ_V_SVCC_NBB2_CWPNCMTSTX10_Data01_04F1_M_MA' => '0.002',
              'ZZ_V_SVCC_NBB2_SLPNAHIDSP02_SAN' => '0.1',
              'ZZ_V_SVCC_NBB2_SWPNCMEVEP01_K_0607_AU' => '0.05',
              'ZZ_V_SVCC_NBB2_SRVMBXP24_U_0108_NM' => 1,
              'Other' => '22.458',
              'ZZ_V_SVCC_NBB2_SWPNCMETUP01_D_0423_049E_AU' => '2.07',
              'NetBackup' => '7.87',
              'ZZ_V_SVCC_NBB2_SRVMBXP22_L_0520_NM' => '0.5',
              'ZZ_V_SVCC_NBB2_CWPNCMTSTX10_Qorum_Q_04F0' => '0.001',
              'ZZ_V_SVCC_NBB2_SRVMBXP22_R_051E_NM' => 1,
              'ZZ_V_SVCC_NBB2_SNCAMM21_22_NEWSwa_04F6_NM' => '0.01',
              'ZZ_V_SVCC_NBB2_SNCAMM21_22_NEWOrawork_04F5_NM' => '0.1',
              'Filer' => '134.044',
    etc ...

  19. #59
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2012
    Messages
    3 472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mai 2012
    Messages : 3 472
    Points : 11 332
    Points
    11 332
    Billets dans le blog
    1

    Par défaut

    Je ne comprends pas. Je reprends un bout de tes données et essaie ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    $ perl -e '#!/usr/bin/perl
    > use strict;
    > use warnings;
    my %h>  = (
    use feature "say";
    >
    > my %h = (
    >           "ZZ_V_SVCC_NBB2_SRVMBXP24_L_0521_NM" => "0.5",
    >           "ZZ_V_SVCC_NBB2_SWPNCMEVEP02_G_0182_MA" => "1.46",
    >           "ZZ_V_SVC_NBB2_CLUVDA_VSWVDA10_C_0498_AU" => "0.015",
    >           "ZZ_V_SVCC_NBB2_VDABEEL_01" => "0.001",
    >           "ZZ_V_SVCC_NBB2_SLPNALSTAP01_dbbackup_0460_AU" => "0.2",
    >           "ZZ_V_SVCC_NBB2_SWPNCNDATP01_S_03F7_AU" => "0.01",
    >           "ZZ_vdasplitter" => "0.001",
    >           "ZZ_V_SVCC_NBB2_CWPNCMTSTX10_Data04_04F4_P_MA" => "0.02",
    >           "ZZ_V_SVCC_NBB2_SWPNCMEVEP02_I_0260_MA" => "0.06",
    >           "ZZ_V_SVCC_NBB2_SWPNCNDATP01_P_03F4_AU" => "0.02",
    >           "ZZ_V_SVCC_NBB2_SLPNAMSPLP02_SPLUNK1of2_MA" => "0.5",
    >           "ZZ_V_SVCC_NBB2_SLPNAMSPLP02_SPLUNK2of2_MA" => "0.5",
    >           "ZZ_V_SVCC_NBB2_CWPNCMTSTX10_Data01_04F1_M_MA" => "0.002",
    >           "ZZ_V_SVCC_NBB2_SLPNAHIDSP02_SAN" => "0.1",
    >         );
    > my $cpt = 3;
    > for my $item (grep { /^ZZ_/ } keys %h) {
    >     say "write in J$cpt: $item";
    >     say "write in K$cpt: $h{$item}";
    >     $cpt ++;
    > }
    > '
    write in J3: ZZ_V_SVCC_NBB2_SLPNAHIDSP02_SAN
    write in K3: 0.1
    write in J4: ZZ_V_SVCC_NBB2_SLPNAMSPLP02_SPLUNK2of2_MA
    write in K4: 0.5
    write in J5: ZZ_V_SVCC_NBB2_SWPNCMEVEP02_G_0182_MA
    write in K5: 1.46
    write in J6: ZZ_vdasplitter
    write in K6: 0.001
    write in J7: ZZ_V_SVCC_NBB2_SLPNALSTAP01_dbbackup_0460_AU
    write in K7: 0.2
    write in J8: ZZ_V_SVCC_NBB2_CWPNCMTSTX10_Data04_04F4_P_MA
    write in K8: 0.02
    write in J9: ZZ_V_SVCC_NBB2_VDABEEL_01
    write in K9: 0.001
    write in J10: ZZ_V_SVCC_NBB2_SLPNAMSPLP02_SPLUNK1of2_MA
    write in K10: 0.5
    write in J11: ZZ_V_SVCC_NBB2_SWPNCNDATP01_P_03F4_AU
    write in K11: 0.02
    write in J12: ZZ_V_SVCC_NBB2_SWPNCMEVEP02_I_0260_MA
    write in K12: 0.06
    write in J13: ZZ_V_SVCC_NBB2_CWPNCMTSTX10_Data01_04F1_M_MA
    write in K13: 0.002
    write in J14: ZZ_V_SVCC_NBB2_SRVMBXP24_L_0521_NM
    write in K14: 0.5
    write in J15: ZZ_V_SVCC_NBB2_SWPNCNDATP01_S_03F7_AU
    write in K15: 0.01
    write in J16: ZZ_V_SVC_NBB2_CLUVDA_VSWVDA10_C_0498_AU
    write in K16: 0.015
    Bref, ça marche (je n'ai pas utilisé le module Excel, parce qu'il n'est pas installé sur la machine où je suis actuellement, donc j'ai seulement simulé).

    Sinon, poste ton code actuel, on y trouvera peut-être quelque chose qui ne va pas.

    Note cependant que le code que j'ai posté le 12/01 à 19h35 était légèrement erroné ($item au singulier à un endroit et et $items au pluriel ailleurs). Ce devrait être:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    my $cpt = 3;
    for my $item (grep { /^ZZ_/ } keys %count) {
        $worksheet->write("J$cpt", $item, $Data);
        $worksheet->write("K$cpt", $count{$item}, $Data);
        $cpt ++;
    }
    mais je suppose que tu avais corrigé de toi-même (sinon tu aurais sûrement eu un warning).

  20. #60
    Membre habitué
    Homme Profil pro
    Informatique
    Inscrit en
    mars 2013
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informatique

    Informations forums :
    Inscription : mars 2013
    Messages : 203
    Points : 164
    Points
    164

    Par défaut

    Salut Lolo,

    Je vais regarder à ça, ce n'est pas trop urgent, merci beaucoup en tout cas!
    Effectivement, j'avais bien vu qu'il y avait une petite erreur, je ne suis pas nul à ce point :'(

    Sinon, j'ai une petite question. Je ne sais pas si tu te rappelles, mais dans le script, je commence à partir du certaines lignes (si un string ce suit, hop on lit).
    Malheureusement, j'aurai besoin de ce qui a avant maintenant (mais à traiter d'une autre manière).

    A ton avis, de quel manière dois-je faire ? Comme actuellement ? Je commence donc dés le début, et je récupére ces lignes et ajoute dans ce qui est déjà fait OU je fais de manière séparé ?

    Voilà à quoi ressemble le fichier pour rappel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Command to execute : svcinfo lsmdiskgrp -delim : :
    --------------------------------------------------
    id:name:status:mdisk_count:vdisk_count:capacity:extent_size:free_capacity:virtual_capacity:used_capacity:real_capacity:overallocation:warning:easy_tier:easy_tier_status:compression_active:compression_virtual_capacity:compression_compressed_capacity:compression_uncompressed_capacity:parent_mdisk_grp_id:parent_mdisk_grp_name:child_mdisk_grp_count:child_mdisk_grp_capacity:type:encrypt:owner_type:site_id:site_name
    0:NBB2_CORP_DS8K8:online:38:252:124.98TB:1024:9.39TB:115.59TB:115.58TB:115.58TB:92:90:on:active:yes:5.00GB:3.28MB:0.00MB:0:NBB2_CORP_DS8K8:0:0.00MB:parent:no:none::
    1:MigrationPool_8192:online:0:0:0:1024:0:0.00MB:0.00MB:0.00MB:0:80:auto:balanced:no:0.00MB:0.00MB:0.00MB:1:MigrationPool_8192:0:0.00MB:parent::none::
    2:NBB2_CORP_STW22:online:24:185:87.77TB:1024:22.75TB:93.04TB:64.33TB:65.01TB:106:85:auto:balanced:yes:36.00TB:7.29TB:13.45TB:2:NBB2_CORP_STW22:0:0.00MB:parent:no:none::
    4:NBB2_CORP_NRLSAS_STW22:online:8:32:36.33TB:1024:19.83TB:16.50TB:16.50TB:16.50TB:45:80:auto:balanced:no:0.00MB:0.00MB:0.00MB:4:NBB2_CORP_NRLSAS_STW22:0:0.00MB:parent:no:none::
    5:NBB2_CORP_NRLSAS_STW23:online:8:8:25.46TB:1024:9.15TB:16.31TB:16.31TB:16.31TB:64:80:auto:balanced:no:0.00MB:0.00MB:0.00MB:5:NBB2_CORP_NRLSAS_STW23:0:0.00MB:parent:no:none::
    6:NBB2_CORP_STW23:online:56:205:193.92TB:1024:82.32TB:235.38TB:108.60TB:111.56TB:121:80:auto:balanced:yes:173.15TB:46.36TB:75.17TB:6:NBB2_CORP_STW23:0:0.00MB:parent:no:none::
     
    RC = 0
     
    Command to execute : svcinfo lsvdisk -delim : :
    -----------------------------------------------
    id:name:IO_group_id:IO_group_name:status:mdisk_grp_id:mdisk_grp_name:capacity:type:FC_id:FC_name:RC_id:RC_name:vdisk_UID:fc_map_count:copy_count:fast_write_state:se_copy_count:RC_change:compressed_copy_count:parent_mdisk_grp_id:parent_mdisk_grp_name:formatting:encrypt:volume_id:volume_name:function
    0:V_SVCC_NBB2_SCNAMM21_22_PROA1M_OR01_0398_NM:1:IO_GRP1:online:0:NBB2_CORP_DS8K8:75.00GB:striped:::::600507680181865A7800000000000398:0:1:empty:0:no:0:0:NBB2_CORP_DS8K8:no:no:0:V_SVCC_NBB2_SCNAMM21_22_PROA1M_OR01_0398_NM:
    Dans le cas actuel je commence si je vois"id:name:IO_group_id:".
    Maintenant j'aiemerai récupérer quelques informations dés le début et les stocker ailleurs dans mon fichier.
    Le script en copie.
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. Quelle est l'utilité de Perl pour mon projet ?
    Par cj_prog dans le forum Langage
    Réponses: 1
    Dernier message: 04/05/2011, 14h41
  2. Erreur à l'utilisation de PERL pour Solaris (perl: warning: Setting locale failed.)
    Par arnaudperfect dans le forum Programmation et administration système
    Réponses: 1
    Dernier message: 13/10/2010, 17h08
  3. [Tableaux] Comment utiliser un tableau pour mon application
    Par pierrot10 dans le forum Fonctions
    Réponses: 6
    Dernier message: 26/01/2008, 10h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo