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

Documents Java Discussion :

POI placer chaque ligne d'un xls dans une variable différente


Sujet :

Documents Java

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2014
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 154
    Points : 87
    Points
    87
    Par défaut POI placer chaque ligne d'un xls dans une variable différente
    Bonjour a tous,

    Voilà, je n'y connais pas grand chose avec Apache POI mais je voudrais "simplement" lire un fichier XLS et placer chacune de ces rows dans une variable en sachant que le fichier peut avoir un nombre de lignes totalement variable (de 10 a 2000 environs)
    Je sais comment lire une cellule spécifique mais pas comment le faire pour la totalité de la ligne et de tout le fichier...
    Y aurait-il une fonction spécifique?

    Merci d'avance.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    765
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 765
    Points : 1 036
    Points
    1 036
    Par défaut
    Bonjour,

    Si tu utilises un objet XSSFSheet sheet

    Tu peux itérer sur les rows et sur les cell :

    XSSFRow row = sheet.getRow(i);
    XSSFCell cell = row.getCell(i);

    Tu obtients la dernière rangée avec la méthode getLastRowNum()


    Bon courage,

  3. #3
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Si ton but est de charger l'ensemble des lignes/cellules du fichier dans des variables, pour faire des traitements ultérieures, premièrement, tu ne pourras pas le faire dans des variables différentes : il n'est pas possible de créer des variables dynamiquement, ce qui est nécessaire puisque le nombre de lignes est variable. Mais même s'il était fixe, ce ne serait pas une bonne idée, parce que ce serait très fastidieux à écrire et à maintenir, et pas souple du tout à manipuler.

    Il faut pour faire ce genre de chose utiliser des strucures : tableaux, listes...ou plus généralement collections. Tu peux faire par exemple une classe qui représente chaque ligne (avec un attribut par colonne, et des méthodes de type accesseurs et mutateurs pour les manipuler. En Java standard, pour une liste, tu pourrais utiliser la classe ArrayList par exemple. Mais il me semble qu'il existe d'autres classes plus adaptées sous Android (mais mes connaisances s'arrêtent là à ce sujet). Ensuite, pour remplir la liste tu feras une boucle du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for(int rowIndex=0; rowIndex<=sheet.getLastRowNum(); rowIndex++) {
     
           Row row = sheet.getRow(rowIndex);
           // créer une instance de la classe qui représente une ligne en lisant les cellules de row
           // ajouter cette instance dans la liste
     
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    765
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 765
    Points : 1 036
    Points
    1 036
    Par défaut
    ou LinkedList ... tout dépens de l'usage après.

  5. #5
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2014
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 154
    Points : 87
    Points
    87
    Par défaut
    oulala...

    avec mes très très faible connaissance en java il va falloir que je me renseigne sur tous cela par ce que c'est plus que flou pour l'instant...

    après je n'ai pas vraiment besoin de les stocker pour un utilisation ultérieure, la seul choses que je voudrait c'est les afficher et de pouvoir les différencier (les row de mon fichier) pour savoir la ou les ligne sélectionner dans mon affichage.

    donc si je résume bien ma prochaine étape et de stocker mon fichier dans une array c'est ça?

    en tous cas merci beaucoup pour vos info cela me permet de m'aiguiller la moindre par ce que comme je le disais je suis un débutant en java c'est la première app que je développe et du coup la première fois que je touche a du java..

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par der43e Voir le message
    après je n'ai pas vraiment besoin de les stocker pour un utilisation ultérieure, la seul choses que je voudrait c'est les afficher
    Dans ce cas, tu as juste à faire la boucle, sans stocker les lignes : tu les traites directement dans la boucle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for(int rowIndex=0; rowIndex<=sheet.getLastRowNum(); rowIndex++) {
     
           Row row = sheet.getRow(rowIndex);
           // traiter...
     
    }
    Ou par forEach :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(Row row : sheet) {
     
          // traiter
     
    }
    C'est le plus simple, le plus concis (seulement tu n'as pas d'index de ligne : si tu dois traiter chaque ligne indépendamment des autres et de leur place dans l'ensemble, ça reste le mieux).

    Il y a également la solution par iterateur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(Iterator<Row> rowIterator = sheet.iterator(); rowIterator.hasNext();) {
     
            Row row = rowIterator().next(); 
     
    }
    Enfin, il y a les streams, mais l'API POI ne délivre pas encore directement de stream : c'est donc un peu plus complexe, donc pas d'avantage pour toi.


    Les mêmes mécanismes sont applicables pour parcourir les cellules d'une ligne.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2014
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 154
    Points : 87
    Points
    87
    Par défaut
    d'accord alors effectivement je devrait traiter les lignes indépendamment des autres (enfin réellement quand je dit cela c'est par ce que une fois afficher je doit pouvoir connaitre le numéro de la ligne que l'utilisateur auras sélectionner)

    donc si je comprend je doit:

    créer un tableau char, créer un counter.


    faire une boucle while (tant que il y a une row qui suit avec la fonction "rows.hasNext" c'est bien juste??) alors-->
    incrémenter mon counter
    passer a la row suivante avec quelque chose comme cela "HSSFRow row = (HSSFRow) rows.next()"
    et stocker cette row dans le contenue d'un tableau (tableauexcel[counter] = 's.getRow(counter));


    ce qui donnerait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    char tableauexcel[] = new char[2000];
    int counter = "0";
     
    while (rows.hasNext()) {
    counter++
     HSSFRow row = (HSSFRow) rows.next();
    (tableauexcel[counter] = 'sheet.getRow(counter));
    }
    sa parait un bon début ou je suis totalement au fraise sur le principe?

    je sais c'est des question basique de programmation mais je suis justement a un stade basique

  8. #8
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Ce n'est pas du tout ce que j'ai écrit.

    Déjà, à quoi va te servir ton tableau de 2000 caractères ?

    Ensuite, j'ai écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(Row row : sheet) {
     
          // traiter
     
    }
    Il y a ni besoin de compteur ni de tableau : l'instance de row, c'est la ligne courante. A chaque tour de boucle tu as la suivante jusqu'à la dernière. Traiter la Row, c'est parcourir ses cellules. Après, comme je ne sais pas précisemment ce que tu veux faire, je ne peux rien dire de plus, à part te montrer parcourt générique des cellules (comme je te l'ai dit, c'est similaire au parcourt des lignes)
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for(int cellIndex=row.getFirstCellNum(); cellIndex<row.getLastCellNum();cellIndex++) {
     
           Cell cell = row.getCell(cellIndex);
     
           // traiter la cell
     
    }
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(Cell cell : row) {
     
           // traiter la cell
     
    }
    N'utilise pas la classe HSSFRow (ou XSSFRow) : l'interface Row représente les deux. A moins d'avoir besoin d'accèder à des caractérisques ultra spécifiques aux fichiers excel ancienne génération ou nouvelle génération, l'avantage de traiter tout en Row fait que le code marchera quelque soit la version du fichier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (tableauexcel[counter] = 'sheet.getRow(counter));
    ça ne compilera pas : la quote est en trop. Les parenthèses autour sont superflues. Et stocker des instances de classe Row dans un tableau char, ça ne risque pas de fonctionner. En plus comme le tableau est de taille fixée à 2000, si ton fichier a plus de lignes que 2000, ça plantera.

    Le tableau n'est nécessaire que si tu as besoin de stocker toutes les lignes en mémoire et de traiter tout ça plus tard. Tu as dit que tu n'avais pas besoin de faire ça, donc pas de tableau, c'est inutile. Et ce n'est pas de toute manière un tableau de char. Il faudrait convertir les Row et Cell en autre chose (des classes personnalisées) pour pouvoir fermer le Workbook au plus tôt (ce n'est jamais bon de laisser un fichier ouvert trop longtemps, parce que ça le bloque). Mais de toute manière, on s'en fout, tu as dit que tu n'avais pas besoin de tableau !
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  9. #9
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2014
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 154
    Points : 87
    Points
    87
    Par défaut
    ah désolé!

    alors je pensais que mon tableau était utile du faite que je doute que mon fichier dépasse les 2000 ligne mais effectivement c'est sans garantie... et je l'ai fait en char car il n'y auras normalement que des caractère!

    Le tableau n'est nécessaire que si tu as besoin de stocker toutes les lignes en mémoire et de traiter tout ça plus tard. Tu as dit que tu n'avais pas besoin de faire ça, donc pas de tableau, c'est inutile. Et ce n'est pas de toute manière un tableau de char. Il faudrait convertir les Row et Cell en autre chose (des classes personnalisées) pour pouvoir fermer le Workbook au plus tôt (ce n'est jamais bon de laisser un fichier ouvert trop longtemps, parce que ça le bloque). Mais de toute manière, on s'en fout, tu as dit que tu n'avais pas besoin de tableau !
    j'ai effectivement dit que je ne devait pas les stocker mais je n'en suis pas sur, je crois que je me suis mal exprimé,

    voilà ce a quoi ce voudrait que mon activity ressemble:
    Nom : 2016-08-30 (1).png
Affichages : 184
Taille : 19,7 Ko

    chaqune des lignes affichée serait le contenue de mon fichier, qu'il y en ai 100 ou 1500 et je voudrait que si admet-on la ligne numéro 1 est sélectionner et que le bouton est cliqué il vienne s’écrire quelque choses dans la cellule D1.

    est ce que pour faire ceci je n'ai vraiment pas besoins des les stocker? si je ne les stock pas comment différencier la ligne 1 de la 2 une fois sélectionner?

    Merci d'avance et désoler pour mes question de débutent

  10. #10
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par der43e Voir le message
    et je l'ai fait en char car il n'y auras normalement que des caractère!
    Oui, enfin, tu es en Java, pas en C. Même s'il n'y a que des caractères, déjà en Java, on gère ça via des String. Et c'est toujours intéressant de faire des classes dans un LOP.


    Citation Envoyé par der43e Voir le message
    j'ai effectivement dit que je ne devait pas les stocker mais je n'en suis pas sur, je crois que je me suis mal exprimé,

    voilà ce a quoi ce voudrait que mon activity ressemble:
    Nom : 2016-08-30 (1).png
Affichages : 184
Taille : 19,7 Ko

    chaqune des lignes affichée serait le contenue de mon fichier, qu'il y en ai 100 ou 1500 et je voudrait que si admet-on la ligne numéro 1 est sélectionner et que le bouton est cliqué il vienne s’écrire quelque choses dans la cellule D1.

    est ce que pour faire ceci je n'ai vraiment pas besoins des les stocker? si je ne les stock pas comment différencier la ligne 1 de la 2 une fois sélectionner?

    Merci d'avance et désoler pour mes question de débutent
    Ok, tu vas effectivement probablement avoir besoin de les stocker, dans un modèle (via une List probablement en JavaSE). Malheureusement pour toi je pourrais te guider si tu faisais une application AWT/Swing, ou SWT/JFace, mais pas pour une application Android. En tout cas, je représenterais chaque ligne par une instance d'une classe métier qui modélise ce que représente ta ligne (une quittance, si j'en crois le libellé en bas à droite).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  11. #11
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2014
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 154
    Points : 87
    Points
    87
    Par défaut
    Ok en tous cas merci pour ton aide jusqu'à présent,

    du coup j'ai fait de l'avance en me basent sur un tuto trouver sur le net j'arrive désormais a lire mon fichier grâce au code suivent:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Iterator<Row> rowIter = sheet1.rowIterator();
     
            while (rowIter.hasNext()) {
                //Création de la row
                HSSFRow myRow = (HSSFRow) rowIter.next();
                Iterator<Cell> cellIter = myRow.cellIterator();
                while (cellIter.hasNext()) {
                    HSSFCell myCell = (HSSFCell) cellIter.next();
                    Log.w("FileUtils", "Cell Value: " + myCell.toString());
                    Toast.makeText(Quittance.this, "cell Value: " + myCell.toString(), Toast.LENGTH_SHORT).show();
                    Log.d("Debug", String.valueOf(myCell.toString()));
                }
    Donc mes données s'affiche bien dans le Toast les une après les autres, donc elle sont bien "mises" dans ma variable myCell

    seulement maintenant je voudrait pouvoir les "stocker" dans une array et la j'ai un peut de la peine.. comment faire pour créer un tableau si je ne connais pas a l'avance le nombre de ligne qu'il contiendra? est ce que c'est jouable de conter le nombre de ligne et après avec mon "conteur" de créer une array avec ce nombre?

    et puis après comment le remplir comme il ce doit?

    merci d'avance pour votre aide!!

  12. #12
    Membre éprouvé
    Avatar de Cafeinoman
    Homme Profil pro
    Couteau suisse d'une PME
    Inscrit en
    Octobre 2012
    Messages
    628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Couteau suisse d'une PME

    Informations forums :
    Inscription : Octobre 2012
    Messages : 628
    Points : 1 256
    Points
    1 256
    Par défaut
    Heureusement, en java, les collections ne se limites pas aux array. Dans ton cas, le mieux serai je pense une List, ou plus précisément une List<Cell>. C'est une classe standard de la jvm. Elle te permettra de stocker, dans l'ordre où elles sont ajouté, tes cellules, et de les récupérer par leur index.
    «Dieu ne joue pas aux dés.» - Albert Einstein. Et pan! 30 ans de retard dans la théorie quantique!
    «Tout n'est pas politique, mais la politique s'intéresse à tout.» - Nicolas Machiavel. Et surtout à ceux qui ne s'y intéressent pas.

  13. #13
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2014
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 154
    Points : 87
    Points
    87
    Par défaut
    Merci Cafeinoman je me suis fiez a tes conseilles et j'ai résolut mon souci voici le liens du post!

    http://www.phonandroid.com/forum/pos....html#p2201404

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

Discussions similaires

  1. Word chaque ligne de mes fichiers dans une variable (VBS)
    Par rouletabille63 dans le forum VBScript
    Réponses: 5
    Dernier message: 16/02/2016, 15h54
  2. [PowerShell] Récupérer chaque ligne d'un pipeline dans une variable
    Par Eveanne dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 05/06/2015, 16h16
  3. Réponses: 1
    Dernier message: 08/07/2013, 22h59
  4. Récupérer chaque ligne de type enregistrement dans une table
    Par atporfi dans le forum Administration
    Réponses: 2
    Dernier message: 02/04/2008, 19h12
  5. ligne de fichier txt dans une variable
    Par suya95 dans le forum Langage
    Réponses: 2
    Dernier message: 25/07/2006, 10h14

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