IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Perl Discussion :

Problème pour créer Hash sortant une moyenne pour chaque ligne pour une variable de n fichiers


Sujet :

Contribuez Perl

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Problème pour créer Hash sortant une moyenne pour chaque ligne pour une variable de n fichiers
    Bonjour,
    je vous avoue que je suis totalement néophyte en Perl, beaucoup plus habitué à travailler sous Rstudio en tant qu'écologue... (mais là devant travailler avec un ensemble de fichier lourd, j'ai peur que R ne suive pas).

    Je viens à vous car, j'ai cherché, sûrement pas assez me direz vous, mais je n'ai pas encore trouvé la solution, et je n'avais pas prévus de perdre autant de temps sur ce bout de script...

    Voilà mon problème:
    je possède 5085 fichiers texte dans un répertoire (où 1fichiers texte représente 1pixel géographique avec des données de végétations), tous sont composés des mêmes variables (17 (16 si on part de 0)) pour 6999 lignes (1ligne équivaut à un an).
    Tout d'abord je m'intéresse à mon jeu de données à partir de la ligne 1000 et je fais démarré un compteur $an à partir de là, ça c'est ok!
    Ensuite, là où je bloque, c'est pour réussir à faire le moyenne de la variable 13 d'un ensemble de pixels pour chaque ligne... je ne sais pas si c'est très claire....

    Voici mon script:

    Dans 1 premier temps je voulais travailler qu'avec mes 2 premiers fichiers avant de lancer l'ensemble
    Ensuite, une fois que cela tournera, il faudrait que je l'enregistre dans un fichier externe style outpath que j'ai mis en #
    [CODE=perl][/#!/usr/bin/perl
    #Faire un hash pour faire ressortir la moyenne d'une année sur l'ensemble des pixels pour la variable 13
    #
    #
    #
    #
    #

    for($pixel=1;$pixel<3;$pixel++)
    {

    $folder_in="/media/CBAE_HELY/PierreLouis/Donnees_brutes/LAI";
    $filein=$folder_in.'/AFW_lai_'.$pixel.'.txt';
    #$outpath="/media/CBAE_HELY/PierreLouis/Analyses";
    #$fmoy = $outpath.'/Moy_par_an_LAItot_'.$an.'.txt';
    print "$filein\n";

    open (FLAI, $filein) || die "$filein: $!\n";
    $an=1;
    while (<FLAI>)
    {
    chomp;
    @rowLAI = split(/\s+/,$_);
    if (length($rowLAI[0])==0) { shift(@rowLAI); }
    #print "@rowsoil\n";
    $YearLAI=$rowLAI[2];
    $totLAI=$rowLAI[13];


    if($YearLAI>999 && $YearLAI<7000){;
    $valtotLAI{$lonLAI[$pixel]}{$latLAI[$pixel]}{$an[$pixel]}=$totLAI;
    if ($pixel=1&& $pixel<3) {;
    for ($YearLAI=1000; $YearLAI<7000; $Year++) {;
    $sumx{$totLAI}{$YearLAI}+= $line[YearLAI];
    $moyx{$totLAI}{$YearLAI}=$sumx{$totLAI}{$YearLAI}/2;
    }
    }
    print "$YearLAI $an $sumx{$totLAI}{$YearLAI} $moyx{$totLAI}{$YearLAI}\n";
    $an++;
    };

    }
    close(FLAI);
    }
    die;]

    Je vous remercie d'avance, en espèrant que l'on trouve vite une solution à ce problème, j'en suis sûr, grossier!

    Exemple de mes variables pour la ligne 1 de mon fichier 1

    Lon Lat Year TrTBE TrIBE TrBR TeTBS TeMBS TeIBS TeNE TeBE C3G C4G Total percwood vegcode vegtype
    -0.25 10.25 0 0.0043 0.0043 0.0043 0.0000 0.0000 0.0000 0.0000 0.0000 0.0005 0.0005 0.0138 93.48 6 DESE

    (ps: j'ai essayé d'ajouter la balise code, mais je ne crois pas avoir compris comment l'utiliser pour que cela change les couleurs...)

  2. #2
    Membre éprouvé Avatar de Gardyen
    Homme Profil pro
    Bio informaticien
    Inscrit en
    Août 2005
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bio informaticien

    Informations forums :
    Inscription : Août 2005
    Messages : 637
    Points : 1 050
    Points
    1 050
    Par défaut
    Bonjour, tout d'abord la balise code crée 2 tags, tout ce qui est entre va être considéré comme du code. Par exemple [ CODE]print "Comme ceci";[/CODE] donne (sans l'espace dans la première balise)
    Appliqué à ton code on a
    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
    use strict;
    use warnings;
     
    my $pixel;
    for($pixel=1;$pixel<3;$pixel++){
     
    	my $folder_in="/media/CBAE_HELY/PierreLouis/Donnees_brutes/LAI";
    	my $filein=$folder_in.'/AFW_lai_'.$pixel.'.txt';
    	#$outpath="/media/CBAE_HELY/PierreLouis/Analyses";
    	#$fmoy = $outpath.'/Moy_par_an_LAItot_'.$an.'.txt';
    	print "$filein\n";
     
    	open (FLAI, $filein) || die "$filein: $!\n";
    	my $an=1;
    	while (<FLAI>){
    		chomp;
    		my @rowLAI = split(/\s+/,$_);
    		if (length($rowLAI[0])==0) { shift(@rowLAI); }
    	#print "@rowsoil\n";
    		my $YearLAI=$rowLAI[2];
    		my $totLAI=$rowLAI[13];
     
    		my %valtotLAI;
    		if($YearLAI>999 && $YearLAI<7000){
    			$valtotLAI{$lonLAI[$pixel]}{$latLAI[$pixel]}{$an[$pixel]}=$totLAI;
    			if ($pixel=1&& $pixel<3) {
    				for ($YearLAI=1000; $YearLAI<7000; $Year++) {
    					$sumx{$totLAI}{$YearLAI}+= $line[YearLAI];
    					$moyx{$totLAI}{$YearLAI}=$sumx{$totLAI}{$YearLAI}/2;
    				}
    			}
    			print "$YearLAI $an $sumx{$totLAI}{$YearLAI} $moyx{$totLAI}{$YearLAI}\n";
    			$an++;
    		}
     
    	}
    	close(FLAI);
    }
    die;
    Les 2 premières lignes sont ici pour imposer les bonnes pratiques de codage.
    Elles vont t'imposer entre autres de déclarer tes variables, ce qui te permettra de ne pas te perdre sur qui fait quoi et où.

    Ensuite si j'ai bien compris, tu cherches à rassembler la valeur 13 de tes lignes 1000 à la fin pour chaque fichier qui t'intéresse, afin d'en faire une moyenne par année sur plusieurs fichiers ?
    Tout d'abord, tu dois stocker ces valeurs pour chaque ligne et fichier, et après avoir lu tous les fichiers que tu veux, tu peux faire ta moyenne.
    Donc la partie stockage dans le hash est distincte du calcul, qui ne se fait qu'après avoir tout lu.
    Pour la partie stockage, pourquoi cherches-tu à stocker via la longitude/latitude (je crois, ces variables ne sont pas définies avant) au lieu de stocker par année ?
    Après avoir tout lu, tu as tout ce qu'il faut pour calculer une moyenne

    En pseudocode, ça donnerait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Pour chaque fichier
       Sauter 999 lignes
       Stocker la valeur 13 dans une liste contenue dans un hash en utilisant la ligne $an pour clé
       Passer à la ligne suivante jusqu'à la fin du fichier
    Une fois tous les fichiers lu, tu reprends ton hash, en ordonnant par année
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Trier par année
    Pour chaque année
       Récupérer la liste
       Calculer la moyenne
       Afficher/Écrire/Faire ce que tu veux de cette moyenne
    Ai-je compris ce que tu essayes de faire ?

    Dans tous les cas, n'hésite pas à consulter la
    Nous les geeks, c'est pas qu'on a une case en moins, c'est juste qu'on compte à partir de zéro.
    Plus les choses changent, plus elles restent les mêmes

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Bonjour, tout d'abord merci de t'intéresser à mon souci!
    hum quand je parle de variable 13, je parle en fait de la colonne 13, je sais pas si tu avais compris pareil....

    Mais sinon oui tu as bien compris ce que je veux faire mais je ne sais juste pas le faire..................

    j'ai essayé un autre script tjr pour essayer d'en sortir la moyenne et SD de ma colonne 13 nommé ici 'Total' qu'en pensez-vous??

    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
    #!/usr/bin/perl
    ## 
     
    #################################################
     
    #################################################
     
    ##Variables a Modifier si necessaire
     
    $inpath = "/media/CBAE_HELY/PierreLouis/Donnees_brutes/LAI";#selon periode
    $outpath="/media/CBAE_HELY/PierreLouis/Analyses";
    ##
     
    $fmoy = "$outpath/essai_moy_LAI.txt";#fichier de sortie des moyennes    #selon periode
    $fsd = "$outpath/essai_sd_LAI.txt" ;#fichier de sortie des ecarts types  #selon periode
     
     
    open(FMOY,">$fmoy");
    print FMOY "Year Total\n";
     
    open(FSD,">$fsd");
    print FSD"Year Total\n";
     
     
    ##Creation du fichier de liste
    $filelist = $inpath.'/filelist.txt';
    $folderlist = $inpath;
     
    open (FL, ">$filelist");
    for (<$folderlist/*>) 
    {
           	print FL "$_\n";
    };
    close (FL);
     
     
    ##
    $n =0;
    @count=();
    %seen = ();
    %sumx = ();
    %sumx2 = ();
     
    open(FL,$filelist) ||die "Can't open $filelist: $!\n";
    while(<FL>) 
    {
    	chomp;
    	$filin = $_;
    	print "filin : $filin\n";
     
    	open(FDAT,$filin) ||die "Can't open $filin: $!\n";
    	chomp($entete=<FDAT>);
     
    	## Extraction des valeurs de LAI par coordonnee
    	while(<FDAT>) 
    	{
    		chomp;
    		@line=split(/\s+/,$_);
    		#print " la line est @line\n";
    		$Year=$line[2];
    		#print "lannée est $Year\n";
    		$Total=$line[13]
    		#print "la LAI Total est $Total\n"
     
    		if ($pixel=1 && $pixel<3) 
    		{
    	#	print " $yr\n";
     
    			for ($Year=1000;$Year<7000;$Year++) 
    			{
    			$l = $Year;
    			$sumx{$pixel}{$Total}{$Year} += $line[$l];
    			$sumx2{$pixel}{$Total}{$Year}  += $line[$l]**2;
    			$count{$pixel}{$Total}{$Year}++;
    			#print " la i est $i\n";
    			#print "la somme est $sumx{$lon}{$lat}{$i}\n";
    			#print "le count est $count{$lon}{$lat}{$i}\n";
    			}
    			#print "@line\n";
    		}	
     
    	} #end FDAT
    	close (FDAT);
     
    print FMOY "$pixel $Year ";
    print FSD "$pixel $Year ";	
    	## Calculs des moyennes et ecart type , puis impression
    	for ($Year=1000;$Year<7000;$Year++) 
    	{
    		$moyx{$pixel}{$Total}{$Year}=$sumx{$pixel}{$Total}{$Year}/2;
    		$var{$pixel}{$Total}{$Year}=($sumx2{$pixel}{$Total}{$Year} - (($sumx{$pixel}{$Total}{$Year}**2)/2))/1;
    			if ($var{$pixel}{$Total}{$Year} < 0)
    			{
    			$sd{$pixel}{$Total}{$Year}= 0;
    			}
    			else 
    			{
    			$sd{$pixel}{$Total}{$Year}=sqrt($var{$pixel}{$Total}{$Year});
    			}		
    		printf FMOY "%2.3f", "$moyx{$pixel}{$Total}{$Year}";
    		printf FSD "%2.3f", "$sd{$pixel}{$Total}{$Year}";
    		print FMOY " ";
    		print FSD " ";
    	}	
     
    print FMOY "\n";
    print FSD "\n";
     
    }#endfilelist
     
     
    close (FMOY);
    close (FSD);
    print "TERMINE  \n";
    les messages d'erreurs sont les suivants:

    syntax error at ./essai_HASH_moy.pl line 67, near ")
    {"
    syntax error at ./essai_HASH_moy.pl line 71, near "++)
    "
    syntax error at ./essai_HASH_moy.pl line 83, near "}"
    syntax error at ./essai_HASH_moy.pl line 110, near "}"
    Execution of ./essai_HASH_moy.pl aborted due to compilation errors.

  4. #4
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    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 612
    Points : 12 256
    Points
    12 256
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    à vue de nez et sans tester, je vois au moins deux erreurs de code pouvant expliquer tes erreurs de compilation.

    Il manque un point virgule à la fin de la ligne 62:
    (Note: il manque également un point-virgule à la fin de la ligne suivante, ce qui ne cause pas de problème tant qu'elle est en commentaire, mais en posera si tu décommentes.)

    C'est certainement la cause de l'erreur de compilation indiquée en ligne 67 (et peut-être des erreurs suivantes, il faut déjà corriger cette erreur pour voir si les autres erreurs de syntaxe subsistent).

    Autre chose, ta ligne 65:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ($pixel=1 && $pixel<3)
    est certainement erronée car tu affectes la valeur 0 à $pixel au lieu de comparer $pixel à 0. L'opérateur de comparaison numérique est ==.

    Cela dit, même en corrigeant cette erreur de syntaxe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ($pixel == 1 && $pixel < 3)
    je ne saisis pas la sémantique de ta comparaison: si $pixel est égal à 0, alors cette variable est sans aucun doute inférieure à 3. Autrement dit, le second test est inutile si $pixel est égal à 1, et ne sera même pas exécuté si $pixel est différent de 1.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Bonjour excusez-moi, l'ordinateur étant fixe sur mon lieu de travail je n'ai pu y retoucher hier soir,
    en effet j'ai corrigé la faute, les messages d'erreurs ne s'affichent plus mais par contrer je crois que je fais buguer le système à cause de ce problème de 'pixel' justement...
    Quand je fais tourner, il me dis en gros:
    filin:lechemindufichier/nomdemonfichier1.txt
    Processus Arrêté
    .... et c'est tout...

    En fait le but de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($pixel=1 && $pixel<3)
    (c'est sûrement mal fais car je dois l'utiliser à tort) c'est de dire:

    "Je veux que tu ailles dans le fichier 1 à 2 (dans un premiers temps, dans un second temps je le ferai tourner sur mes 5085 fichiers), dans ces fichiers tu fais la moyenne des lignes commune à la variable 13 et tu me sors ça dansmon fichier externe "

    Fichier1#######################Fichier2#####---- Jusqu'à 5085 ----->#####FichierExterne
    (AFW_lai_1.txt)################(AFW_lai_2.txt)#####################(Essai_Moy_LAI_PLR.txt)

    Year/////var13###########Year /////var13######################Year ///// var13 (moy)
    1000/////75.6################1000/////67.3 #######################1000 /////(75.6+67.3+...)/5085
    1001/////80.3################1001/////64.8 #######################1001 ///// .........................
    1002/////79.4################1002/////65.1 #######################1002 ///// .........................
    1003/////85.3################1003/////62.4 ####################### 1003///// .........................
    1004/////74.6################1004/////58.3 ####################### 1004///// (74.6+58.3+...)/5085


    Est-ce plus clair avec ce petit tableau?
    Avez vous une solution simple à me proposer pour parvenir à cela? (en sachant que je ne fais du perl que depuis 3jours, un exemple concret serait plus efficace que des paroles malheureusement... )

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Résolu :)
    Bonjour, j'ai réussi à résoudre mon pb, voici le script correspondant

    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
    #!/usr/bin/perl
    ####################################################
    #	Mise en memoire des sols		   #
    ####################################################
    # NB We now retain the coordinates for future searches
    $inpath = "/media/CBAE_HELY/PierreLouis/Donnees_brutes/LAI";#selon periode
    $outpath="/media/CBAE_HELY/PierreLouis/Analyses";
    ##
     
    $fileout = "$outpath/LAItot_par_an_global.txt";#fichier de sortie des moyennes    #selon periode
     
     
    open(FOUT,">$fileout");
    print FOUT "Year LAItotmoy LAItotsd\n";
     
     
    for($pixel=1;$pixel<5086;$pixel++)
    {
      $filein=$inpath.'/AFW_lai_'.$pixel.'.txt';
      open (FLAI, $filein) || die "$filein: $!\n";
    $an=1;
      while (<FLAI>)
      {
    	chomp;
    	@rowLAI = split(/\s+/,$_);
    	if (length($rowLAI[0])==0) { shift(@rowLAI); }
    	#print "@rowsoil\n";
    	$lonLAI[$pixel]=$rowLAI[0];
    	$latLAI[$pixel]=$rowLAI[1];
    	$YearLAI=$rowLAI[2];
    	$totLAI=$rowLAI[13];
     
    	if($YearLAI>999 && $YearLAI<7000){
    	  $valtotLAI{$lonLAI[$pixel]}{$latLAI[$pixel]}{$an[$pixel]}=$totLAI;
    	  $valtotLAI2{$an}{$pixel}=$totLAI;
    	  #print "$pixel $lonLAI[$pixel] $latLAI[$pixel] $YearLAI $an $totLAI $valtotLAI{$lonLAI[$pixel]}{$latLAI[$pixel]}{$an[$pixel]} et $valtotLAI2{$an}{$pixel}\n";
    	  $an++;
    	  }
     
      }
      close(FLAI);
    }
    #print "$valtotLAI2{1}{1} $valtotLAI2{1}{2}\n";
     
    $n =0;
    @count=();
    %seen = ();
     
    %sumx = ();
    %sumx2 = ();
     
    for($an=1;$an<6001; $an++)
    {
      for($pixel=1;$pixel<5086;$pixel++)
      {
      	$sumx{$an} += $valtotLAI2{$an}{$pixel};
    	$sumx2{$an}  += $valtotLAI2{$an}{$pixel}**2;
    	$count{$an}++;
    	#print " l'annee i est $an, la valeur est $valtotLAI2{$an}{$pixel} et ";
    	#print "la somme est $sumx{$an}\n";
    	#print "le count est $count{$an}\n";
      }
      #print " l'annee $an, la somme est $sumx{$an} et le count est $count{$an}\n";
    			#print "@line\n";
    }
     
    for($an=1;$an<6001; $an++)
    {
      print FOUT "$an ";
    	$moyx{$an}=$sumx{$an}/5085;
    	$var{$an}=($sumx2{$an} - (($sumx{$an}**2)/5085))/5084;
    	if ($var{$an} < 0){
    		$sd{$an}= 0;
    	}
    	else {
    		$sd{$an}=sqrt($var{$an});
    	}		
    	#print FOUT "$moyx{$an} $sd{$an}\n";
    	printf FOUT "%2.2f %2.2f","$moyx{$an}" ,"$sd{$an}";
    	print FOUT "\n";
     
     
    }
     
    close(FOUT);
    print "terminé \n";

    Merci pour votre aide malgré tout et à bientôt!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 07/03/2013, 06h40
  2. Réponses: 0
    Dernier message: 09/11/2010, 15h42
  3. Réponses: 2
    Dernier message: 27/05/2010, 09h45
  4. Réponses: 3
    Dernier message: 15/06/2007, 22h50
  5. [VBA]Exécuter une tache sur chaque ligne d'une table
    Par Tierisa dans le forum VBA Access
    Réponses: 1
    Dernier message: 13/04/2007, 16h53

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