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

C Discussion :

Utilisation de FILE en parametre dans une fonction


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 21
    Points : 12
    Points
    12
    Par défaut Utilisation de FILE en parametre dans une fonction
    Bonjour les jeunes,

    je vous ecris suite a un petit soucis que j'ai avec les fichiers et surtout le pointeur FILE.

    Je voudrais utiliser les fichiers dans une fonction sauf qu il faut mettre FILE en parametre mais je ne sais pas comment ecrire l'entete correctement avec le pointeur de FILE.

    voici la declaration dans le main du FILE :
    et de ma fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void ouverture_fichier_menu_principal() {
     
    ouverture = fopen("Menus_Principaux.txt", "a");
    if (ouverture != NULL) {
    fprintf(ouverture, "Menus Principaux\n\n%s",pointeur_Nom_menu_principal);
    fclose(ouverture); // On ferme le fichier qui a été ouvert        
    }
    }
    Merci d'avance

  2. #2
    Membre éclairé Avatar de crocodilex
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 697
    Points : 858
    Points
    858
    Par défaut
    Très simplement comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void ouverture_fichier_menu_principal (FILE *ouverture) 
    {
         [...]
         ouverture = fopen("Menus_Principaux.txt", "a");
         [...]
    }


    [EDIT]J'ai écrit une grosse ânerie...quel boulet... [/EDIT]

  3. #3
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par crocodilex
    Très simplement comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void ouverture_fichier_menu_principal (FILE *ouverture) 
    {
         [...]
         ouverture = fopen("Menus_Principaux.txt", "a");
         [...]
    }
    Où est l'intérêt de faire cela ?

    Si on passe un FILE* en paramètre, cela implique que le fichier est déjà ouvert. Sinon, on fait que passer une variable non initialisée, ce qui est inutile.

    Si jamais on veut modifier le paramètre, on passe un pointeur, et cela donnerait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    void ouverture_fichier_menu_principal (FILE **ouverture) 
    {
         [...]
         *ouverture = fopen("Menus_Principaux.txt", "a");
         [...]
    }
     
    int main()
    {
      FILE *ouverture = NULL;
      ouverture_fichier_menu_principal(&ouverture);
    }
    Personnellement, je ne vois pas l'intérêt de passer le pointeur, je préfére retourner le FILE* :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    FILE* ouverture_fichier_menu_principal () 
    {
         FILE* ouverture;
         [...]
         ouverture = fopen("Menus_Principaux.txt", "a");
         [...]
         return ouverture;
    }
     
    int main()
    {
      FILE *ouverture = NULL;
      ouverture = ouverture_fichier_menu_principal();
    }
    Jc

    [EDIT]Copié-collé de ***, merci mujigka[/EDIT]

  4. #4
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    Citation Envoyé par fearyourself
    Personnellement, je ne vois pas l'intérêt de passer le pointeur, je préfére retourner le FILE* :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void ouverture_fichier_menu_principal (FILE *ouverture) 
    {
         FILE* ouverture;
         [...]
         ouverture = fopen("Menus_Principaux.txt", "a");
         [...]
         return ouverture;
    }
    Dans ce cas, la définition correcte de la fonction ouverture fichier est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    FILE * ouverture_fichier_menu_principal (void) 
    {
         /* ... */
         return ouverture;
    }
    Thierry

  5. #5
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    Citation Envoyé par jesuscrie
    je vous ecris suite a un petit soucis que j'ai avec les fichiers et surtout le pointeur FILE.
    FILE n'est pas un pointeur...

    Thierry

  6. #6
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par mujigka
    Dans ce cas, la définition correcte de la fonction ouverture fichier est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    FILE * ouverture_fichier_menu_principal (void) 
    {
         /* ... */
         return ouverture;
    }
    Thierry
    En effet, copié-collé trop rapide, c'est corrigé

  7. #7
    Membre éclairé Avatar de crocodilex
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 697
    Points : 858
    Points
    858
    Par défaut
    Citation Envoyé par fearyourself
    Où est l'intérêt de faire cela ?

    Si on passe un FILE* en paramètre, cela implique que le fichier est déjà ouvert. Sinon, on fait que passer une variable non initialisée, ce qui est inutile.

    Si jamais on veut modifier le paramètre, on passe un pointeur, et cela donnerait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    void ouverture_fichier_menu_principal (FILE **ouverture) 
    {
         [...]
         *ouverture = fopen("Menus_Principaux.txt", "a");
         [...]
    }
     
    int main()
    {
      FILE *ouverture = NULL;
      ouverture_fichier_menu_principal(&ouverture);
    }
    Personnellement, je ne vois pas l'intérêt de passer le pointeur, je préfére retourner le FILE* :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    FILE* ouverture_fichier_menu_principal () 
    {
         FILE* ouverture;
         [...]
         ouverture = fopen("Menus_Principaux.txt", "a");
         [...]
         return ouverture;
    }
     
    int main()
    {
      FILE *ouverture = NULL;
      ouverture = ouverture_fichier_menu_principal();
    }
    Jc
    Oui en effet, au temps pour moi. Tu as entièrement raison.
    J'ai 40 ans aujourd'hui, et je perd déjà la boule..... Je n'imagine meme pas ce que ca va donner à 50 ans....

  8. #8
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par crocodilex
    Oui en effet, au temps pour moi. Tu as entièrement raison.
    J'ai 40 ans aujourd'hui, et je perd déjà la boule..... Je n'imagine meme pas ce que ca va donner à 50 ans....
    Oh ben c'est parce que tu ne penses qu'à tes cadeaux de ce soir



    Joyeux anniversaire !!!! Joyeux anniversaire !!!! Joyeux anniversaire !!!!



    Jc

  9. #9
    Membre éclairé Avatar de crocodilex
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 697
    Points : 858
    Points
    858
    Par défaut
    Merci c'est très gentil. En effet je pense aussi à mes cadeaux

  10. #10
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    Joyeux anniversaire, Crocodilex!

    Thierry

  11. #11
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Joyeux anniversaire


    Le double de mon âge

  12. #12
    Membre éclairé Avatar de crocodilex
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 697
    Points : 858
    Points
    858
    Par défaut
    Citation Envoyé par Skyrunner
    Le double de mon âge
    C'est gentil de remuer le couteau dans ma vieille plaie...

    Merci quand même à tous...

  13. #13
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par crocodilex
    Oui en effet, au temps pour moi. Tu as entièrement raison.
    J'ai 40 ans aujourd'hui, et je perd déjà la boule..... Je n'imagine meme pas ce que ca va donner à 50 ans....
    Moi, je sais... C'est pas terrible, mais en se concentrant, on y arrive encore...

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    je vous remercie pour vos reponses.

    Mais je voudrais savoir pour un dernier cas, dans le cas où l'appel à la fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    FILE* ouverture_fichier_menu_principal () {
     
    ouverture = fopen("Menus_Principaux.txt", "a");
    if (ouverture != NULL) {
    fprintf(ouverture, "Menus Principaux\n\n%s",pointeur_Nom_menu_principal);
    fclose(ouverture); // On ferme le fichier qui a été ouvert        
    }
    }
    se fait via une autre fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    void saisie_nom_menus_principaux(char *nom_menu_principal, int *nbre_menu_principal) {
     
    int Numero_Menu = 1;
     
    while ( *nbre_menu_principal != 0 ) {
    printf("Veuillez saisir le nom de votre %d menu :",Numero_Menu);
    scanf("%s",nom_menu_principal);
    Numero_Menu = Numero_Menu + 1;
    *nbre_menu_principal = *nbre_menu_principal - 1;
    FILE* ouverture_fichier_menu_principal();
    }
    }
    Mais lorsque je veux compiler, ça me signale que le FILE* n'est pas declaré dans la fonction saisie_nom_menus_principaux ?

  15. #15
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par jesuscrie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    FILE* ouverture_fichier_menu_principal () {
     
    ouverture = fopen("Menus_Principaux.txt", "a");
    if (ouverture != NULL) {
    fprintf(ouverture, "Menus Principaux\n\n%s",pointeur_Nom_menu_principal);
    fclose(ouverture); // On ferme le fichier qui a été ouvert        
    }
    }
    Ce code est incomplet. ouverture n'est pas défini, et tu ne retournes rien, malgré le prototype...

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    il y a quelque chose que je ne dois pas comprendre pourquoi il faut encore redefinir FILE* ouverture = NULL;

    Et il faut forcement retourner quelque chose ?

  17. #17
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par jesuscrie
    il y a quelque chose que je ne dois pas comprendre pourquoi il faut encore redefinir FILE* ouverture = NULL;

    Et il faut forcement retourner quelque chose ?
    Bah, si tu définis ta fonction comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FILE* ouverture_fichier_menu_principal ()
    oui. C'est toi le patron...

    Explique exactement ce que tu veux faire, parce que tu m'as l'air un peu perdu là...

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    je dois faire un editeur de menu.
    Tout d'abord, je crée des prototypes pour chaque fonction
    je me retrouve donc avec le main suivant :

    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
    #include <stdlib.h>
    #include <stdio.h>
    #include <conio.h>
    #include "saisie_nbre_menus_principaux.h"
    #include "saisie_nbre_menus_secondaires.h"
    #include "saisie_nom_menus_principaux.h"
    #include "saisie_nom_menus_secondaires.h"
    #include "ouverture_fichier_menu_principal.h"
     
     
    int main(int argc, char *argv[])   {
    //declaration de variables
    int nbre_menu_principal = 0;
    int *pointeur_Nbre_menu_principal = &nbre_menu_principal;
    char nom_menu_principal[15] = "" ;
    char *pointeur_Nom_menu_principal = &nom_menu_principal[15];
    int nbre_menu_secondaire = 0;
    int *pointeur_Nbre_menu_secondaire = &nbre_menu_secondaire;
    char nom_menu_secondaire[15] = "" ;
    char *pointeur_Nom_menu_secondaire = &nom_menu_secondaire[15];
    FILE* ouverture = NULL;
     
    printf("Bienvenue dans editeur de menu :\n\n");
    //fonctions de saisie du nombre de menu principaux
    saisie_nbre_menus_principaux(&nbre_menu_principal);
    //fonctions de saisie du nom des menus principaux
    saisie_nom_menus_principaux(&nom_menu_principal[15], &nbre_menu_principal);
    //fonctions de saisie du nombre de menu secondaires
    saisie_nbre_menus_secondaires(&nbre_menu_secondaire);
    //fonctions de saisie du nom des menus secondaires 
    saisie_nom_menus_secondaires(&nom_menu_secondaire[15], &nbre_menu_secondaire);
    //fonctions d'ouverture du fichier des menus principaux 
     
     
     
      system("PAUSE");	
      return 0;
    }
    A l'interieur de ma fonction saisie_nom_menus_principaux se trouve à un moment precis l'appel a la fonction ouverture_fichier_menu_principal :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    void saisie_nom_menus_principaux(char *nom_menu_principal, int *nbre_menu_principal) {
     
    int Numero_Menu = 1;
     
    while ( *nbre_menu_principal != 0 ) {
    printf("Veuillez saisir le nom de votre %d menu :",Numero_Menu);
    scanf("%s",nom_menu_principal);
    Numero_Menu = Numero_Menu + 1;
    *nbre_menu_principal = *nbre_menu_principal - 1;
    FILE* ouverture_fichier_menu_principal ();
    }
    }

    et voici la fonction FILE* ouverture_fichier_menu_principal () :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    FILE* ouverture_fichier_menu_principal () {
     
    ouverture = fopen("Menus_Secondaires.txt", "a");
    if (ouverture != NULL) {
    fprintf(ouverture, "Menus Secondaires\n\n%s",pointeur_Nom_menu_secondaire);
    fclose(ouverture); // On ferme le fichier qui a été ouvert        
    }
    }
    merci de pouvoir eclairer ma lanterne forte eteinte !

  19. #19
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par jesuscrie
    je dois faire un editeur de menu.
    <...>
    merci de pouvoir eclairer ma lanterne forte eteinte !
    Pour le moment, je ne veux pas voir de code. Je veux juste savoir quel est le but de l'opération.

    J'ai retenu "je dois faire un editeur de menu".

    C'est court ! Ou est la spécification ? Ou est l'analyse ?

    J'espère que tu ne codes pas au hasard...

  20. #20
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Les etapes sont les suivantes :

    - Dans un premiers temps, la demande du nombre de menu principal est demandé
    - apres quoi, ecrire le nom de ces menus principaux en respectant le nombre ecrit precedemment
    - enregistrer le nom des menus principaux dans un fichier texte
    - Ensuite, la demande du nombre de menu secondaire est demandé suivant le menu principal
    - apres quoi, ecrire le nom de ces menus secondaires en respectant le nombre ecrit precedemment
    - enregistrer le nom des menus secondaires dans un fichier texte
    - une fois toutes ces informations acquises, je genererai un fichier de ressource avec les noms de menus ecrit par l utilisateur
    - creation d'une fenetre principale avec un menu utilisant le fichier ressources créé juste avant
    - destruction des fichiers texte pour le menu principal et secondaire

    Tout ceci doit etre ecrit en C sous un environnement Windows.

    PS: excusez moi si toutes ces notions sont encore vagues car mon apprentissage sur le C et tres recent...

Discussions similaires

  1. oublier volontairement des parametres dans une fonction
    Par Joe Le Mort dans le forum Langage
    Réponses: 2
    Dernier message: 23/08/2006, 16h12
  2. Passer un tableau en parametre dans une fonction js
    Par hellmaster78 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 19/06/2005, 14h35
  3. Probleme valeur de parametre dans une fonction
    Par TitouLolo dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/05/2005, 13h56
  4. Réponses: 6
    Dernier message: 24/12/2004, 16h46
  5. [langage] Passage de paramètres dans une fonction
    Par And_the_problem_is dans le forum Langage
    Réponses: 11
    Dernier message: 28/06/2004, 08h20

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