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 :

ProgressBar Transfert des données


Sujet :

C#

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 131
    Points : 46
    Points
    46
    Par défaut ProgressBar Transfert des données
    Bonjour,

    Voila je voudrais ajouter deux prograsBar pour mon application qui fait établir une communication via un port série.

    La j'ai deux événement:
    - une prograssBar pour la réception des données via le port série.
    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
     
            private void serialPort2_DataReceived(object sender, SerialDataReceivedEventArgs e)
            {
     
                while (serialPort2.BytesToRead > 0)
                {
     
                        char[] buffer = new char[128]; // on crée un char de 255 caractere            
     
                      int longueur_bytes_read = serialPort2.Read(buffer, 0, buffer.Length); //lecture du buffer jusqu'a sa longeur buffer.Length               
                      //tes characteres sont contenus dans buffer.
                      //on remplit notre string value byte par byte par notre tableau de charactere buffer, le += fait que l'on écrase pas les données qui sont inserées, mais on les ajoutes.                
     
                     for (int i = 0; i < longueur_bytes_read; i++)
                     {
                        value +=buffer[i];
     
                     }
     
                     StatusLabel1.Text = "Transfert en cours...";
     
                    }                           
        }
    j'ai essayé le timer mais ça déclenche toujours après.

    Pouvez-vous m'aider ????? j'ai trop passer de temps pour les mettre en oeuvre mais je n'arrive pas.

    Merciii

  2. #2
    Membre expérimenté

    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2009
    Messages
    553
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2009
    Messages : 553
    Points : 1 672
    Points
    1 672
    Par défaut
    Euh... elles sont où les ProgressBar, dans le code que tu as montré ???

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 131
    Points : 46
    Points
    46
    Par défaut
    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
     
    private void serialPort2_DataReceived(object sender, SerialDataReceivedEventArgs e)
            {
     
                while (serialPort2.BytesToRead > 0)
                {
     
                        char[] buffer = new char[128]; // on crée un char de 255 caractere            
     
                      int longueur_bytes_read = serialPort2.Read(buffer, 0, buffer.Length); //lecture du buffer jusqu'a sa longeur buffer.Length               
                      //tes characteres sont contenus dans buffer.
                      //on remplit notre string value byte par byte par notre tableau de charactere buffer, le += fait que l'on écrase pas les données qui sont inserées, mais on les ajoutes.                
     
                     for (int i = 0; i < longueur_bytes_read; i++)
                     {
                        value +=buffer[i];
                      timer1.Start();
     
                     }
     
                     StatusLabel1.Text = "Transfert en cours...";
     
                    }                           
        }
    private void timer1_Tick(object sender, EventArgs e)
            {
                for (int i = 0; i <=100 ; i++)
                {
                    progressBar1.Value = i;
                    StatusLabel1.Text = progressBar1.Value.ToString() + "%" + "Télechargement en court...";
     
                }
                if(progressBar2.Value==100)
                { 
                    timer1.Stop();
                    toolStripStatusLabel1.Text = "Chargement Fini";
                }
     
            }

  4. #4
    Membre expérimenté

    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2009
    Messages
    553
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2009
    Messages : 553
    Points : 1 672
    Points
    1 672
    Par défaut
    Super... maintenant si tu pouvais prendre la peine d'expliquer ce que tu veux faire, ce que tu obtiens, etc...
    Parce que "ça marche pas" c'est un peu vague, hein...
    En plus, rien qu'en faisait ce petit effort, il se pourrait même que tu trouves toi-même la solution à ton problème, donc ça vaut vraiment le coup d'essayer.

  5. #5
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 131
    Points : 46
    Points
    46
    Par défaut
    Bonjour,
    merci pour le retour.

    Voila, mon application fait établir une communication(recevoir/envoie des données) avec une commande d'axe via un port série.

    l’événement dataReceved me permet de récuper les données de la commande d'axe, et je voudrais ajouter une progressBar pour voir l'état d’avancement des données.

    j'ai fait avec un timer mais j'ai aucune progression.

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Points : 762
    Points
    762
    Par défaut
    Sans vouloir être pénible je t'ai déjà donné 2 solutions dans ce post : http://www.developpez.net/forums/d15...s/#post8274198. Une propre et une bricole car tu ne voulais pas de la propre.
    Si tu ne veux pas prendre le temps de comprendre même la solution crade stoppe ton code. Tu as besoin de lire des tutos sur :
    • Les events (DataReceived de ton port série)
    • Les exécutions en tâche de fond + mise à jour de l'interface (Transfert des données et mise à jour de ton UI avec l'avancement)
    • Les ports série / les classes (de manière générale on ne code pas tout dans le formulaire !!!!; c'est moche et limitant)


    Sans ça ce n'est même pas la peine d'essayer de faire ton programme. Tu n'y arriveras pas.
    Et juste une remarque, tu as a quelques octets à envoyer pas la peine de te prendre la tête. Ta barre va passer de min à max d'un coup. Le bénéfice visuel pour l'utilisateur sera nul

    A+

  7. #7
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 131
    Points : 46
    Points
    46
    Par défaut
    bonjour,

    merci pour le retour.
    pour le programme que tu m'a proposer je l'ai testé mais j'arrive même pas à envoyer les donnée.
    la commande d'axe elle a son propre programme pour recevoir et envoyer les données, elle est un peu spécial.

    j'ai besoin de marquer la fin de transmission des donnée pour l'utilisateur, afin que ce dernier passe à autre chose. c'est pour ça que je veux faire une progresse bar.

    c'est il y'a une autre méthode pour marquer la fin de la transmission a part la progressBar, je suis prôneuse

    merci beaucoup.

  8. #8
    Membre expérimenté

    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2009
    Messages
    553
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2009
    Messages : 553
    Points : 1 672
    Points
    1 672
    Par défaut
    Des méthodes il y a en plein, il faut juste faire preuve d'un peu d'imagination ou simplement observer ce qui se fait dans les logiciels existants.
    Tu peux afficher une boite de dialogue "terminé!", désactiver tous les boutons jusqu'à la fin du traitement, cache toute la fenêtre, etc...
    Si le traitement est rapide, j'opterais pour la deuxième solution: désactiver les boutons jusqu'à la fin du traitement.

  9. #9
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 131
    Points : 46
    Points
    46
    Par défaut
    merci #nnovic pour le retour.
    je vais essayé de faire la boite de dialogue c'est mieux, comme ça elle serra bien visible pour dire à l’utilisateur que la transmission est terminé.

  10. #10
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 131
    Points : 46
    Points
    46
    Par défaut
    Bonjour,
    j'ai essayé de faire la boite de dialogue
    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
     
           private void serialPort2_DataReceived(object sender, SerialDataReceivedEventArgs e)
            {
                serialPort2.Write("\u000D");// lance la tach envoiFil
     
                try
                {
                    while (serialPort2.BytesToRead > 0)
                    {
                        char[] buffer = new char[250]; // on crée un char de 255 caractere            
     
                        longueur_bytes_read = serialPort2.Read(buffer, 0, buffer.Length);
                        //int longueur_bytes_read = serialPort2.Read(buffer, 0, buffer.Length); //lecture du buffer jusqu'a sa longeur buffer.Length               
                        //tes characteres sont contenus dans buffer.
                        //on remplit notre string value byte par byte par notre tableau de charactere buffer, le += fait que l'on écrase pas les données qui sont inserées, mais on les ajoutes.
     
     
                        for ( i = 0; i < longueur_bytes_read; i++)
                        {
                            value += buffer[i];
                            StatusLabel1.Text = "Transfert en court... ";
                        }
     
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Failed: " + ex.Message);
                }
     
                finally
                {
                    if ( serialPort2.BytesToRead < 0 )
     
                        MessageBox.Show("terminé ");
     
                }
    }
    le programme passe pas a finally, le messageBox ne s'affiche pas

  11. #11
    Membre expérimenté

    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2009
    Messages
    553
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2009
    Messages : 553
    Points : 1 672
    Points
    1 672
    Par défaut
    Le programme doit obligatoirement passer par finally.
    Donc, soit tu ne sors jamais de ta boucle "while", soit ton "if ( serialPort2.BytesToRead < 0 )" est faux.
    D'aileurs, tu penses vraiment que "BytesToRead" pourrait être strictement inférieur à zéro ? Ca n'a pas de sens...

  12. #12
    Membre actif
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Septembre 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 176
    Points : 297
    Points
    297
    Par défaut
    Bonjour,

    Ne passe pas dans le finaly ou n'affiche pas le MessageBox ? C'est pas tout à fait la même chose

    Au vu de la condition de ton while et celle de ton if dans le finaly, je dirais que serialPort2.BytesToRead == 0.
    Donc que ça passe dans le finaly mais pas dans le if, et à raison.

    Bonne continuation
    L’aléatoire n’existe pas en informatique, c’est juste un moyen de dire que l’on a pas encore compris.

  13. #13
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 131
    Points : 46
    Points
    46
    Par défaut
    j'ai remplacé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     finally
                {
                    if (serialPort2.BytesToRead == 0)
                    MessageBox.Show("terminé ");                   
                }
    oui, ça passe dans finally, le souci, je reçois un pâque de données en suit il passe dans finally et je passe dans le if je ressort pas, il y a le messageBox qui s'affiche en répétition.

    mais normalement je ne doit pas sortir de la boucle while jusqu'à la réception de toute les données qui passe dans le port série ???

  14. #14
    Membre expérimenté

    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2009
    Messages
    553
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2009
    Messages : 553
    Points : 1 672
    Points
    1 672
    Par défaut
    Non. Le port série n'a aucune notion de début et de fin des données. Il reçoit des octets, et quand il a un reçu un certain nombre il déclenche l'évènement DataReceived. A un instant donné, tu peux avoir BytesToRead qui vaut zéro, et juste après de nouveaux octets sont arrivés sur le port série, donc l'évènement DataReceived est déclenché à nouveau, BytesToRead n'est plus à zéro. C'est probablement ce qui se passe dans ton cas: l'évènement DataReceived est déclenché à répétition car tu reçois en permanence de nouvelles données.

  15. #15
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 131
    Points : 46
    Points
    46
    Par défaut
    oui si ce que j'ai constaté.
    du coup comment je pourrais faire pour marque la fin de la réception pour l'utilisateur.

  16. #16
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Points : 762
    Points
    762
    Par défaut
    Il suffit de connaitre le protocole de dialogue avec ton interlocuteur. Généralement on a toujours un caractère de début (STX) et de fin de trame (ETX); ou bien ce son des trames de longueur fixe.
    Tu dialogues avec quoi ?

  17. #17
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 131
    Points : 46
    Points
    46
    Par défaut
    j'utilise le port série pour la communication.

    le transfert doit se faire par paquet de 100 caractère
    le nombre total de boucle est de 1278
    ce qui nous fait un transfert de 1278*100 octet environs.

  18. #18
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Points : 762
    Points
    762
    Par défaut
    Citation Envoyé par tintine Voir le message
    1278*100 octet environs.
    Environ ou exactement ?

    Si c'est exactement je te propose ce code (qui essaye de reprendre le nom de tes variables).
    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
     
    SerialPort serialPort2 = new SerialPort();
     
    		public From1()
    		{
    			serialPort2.DataReceived += p_DataReceived;			
    		}
     
    		List<byte> m_Trame = new List<byte>();//contiendra la trame retournée par l'automate du bout du fil après une demande de transfert
    		private void Envoyer()
    		{
    			this.m_Trame.Clear();//nettoyage de la trame pour en recevoir une nouvelle
    			this.serialPort2.Write("\u000D");//demande de transfert de la trame
    			this.StatusLabel1.Text = "Transfert en cours... ";//maj UI
     
    		}
     
    		void p_DataReceived(object sender, SerialDataReceivedEventArgs e)//appellée à chaque fois que le correspondantr envoi un paquet de données (100octets selon toi)
    		{
    			while (this.serialPort2.BytesToRead > 0)
                {
    				 byte[] buffer = new byte[255]; // on crée un tampon de 255 caractères             
    				 int nb = this.serialPort2.Read(buffer, 0, buffer.Length);//on lit ce qu'il y a sur le port
     
    				 for (int i = 0; i < nb; i++)
    				 {
    					 this.m_Trame.Add(buffer[i]);//on sauve les octets dans la trame globale			 
    				 }
    			}
     
    			if(this.m_Trame.Count == 100 * 1278)
    			{
    				MessageBox.Show("Transfert terminé !");
    			}
    		}

  19. #19
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 131
    Points : 46
    Points
    46
    Par défaut
    non, il ne m'a pas afficher le message.

    et portant je suivis ce programme qui permet d'envoyer ces données la;
    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
     
    repeat
    B$=input$ #2,1
    until B$=chr$(13)
    B$=""
     
    suite:
    seek #3,pointeur&
    A$=input$ #3,100
    wait len(A$)=100
     
    pointeur& = pointeur& + 100
    clearin #2
    clearout #2
    print #2,chr$(13)+A$;
    wait outempty(#2)
     
    if pointeur&<=127801 then
    jump repete
    else 
    jump fin
    end if
     
    fin:

  20. #20
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Points : 762
    Points
    762
    Par défaut
    Connais pas ce langage...

    Juste fais cette modif :

    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
     
    void p_DataReceived(object sender, SerialDataReceivedEventArgs e)//appellée à chaque fois que le correspondantr envoi un paquet de données (100octets selon toi)
    		{
    			while (this.serialPort2.BytesToRead > 0)
                {
    				 byte[] buffer = new byte[255]; // on crée un tampon de 255 caractères             
    				 int nb = this.serialPort2.Read(buffer, 0, buffer.Length);//on lit ce qu'il y a sur le port
     
    				 for (int i = 0; i < nb; i++)
    				 {
    					 this.m_Trame.Add(buffer[i]);//on sauve les octets dans la trame globale			 
    				 }
    			}
     
    			//if(this.m_Trame.Count == 100 * 1278)
    			//{
    				//MessageBox.Show("Transfert terminé !");
    			//}
                            Console.WriteLine("Il y a {0} octets dans la trame globale", this.m_Trame.Count);//Ça 'est nouveau
    		}
    Et dis moi quelle est la valeur affichée lors du dernier Console.WriteLine();
    C'est bricole mais tu n'auras qu'à mettre cette valeur à la place du 100 * 1278.

    Sinon je pense que tu devrais lire la doc de ton automate. Comme je te l'ai dit soit tu as une trame de longueur fixe envoyée à chaque fois soit tu as un caract de début et fin de trame.

    Le bout de code posté ne me parle pas. C'est toi qui l'a écrit ? C'est quoi comme langage ? Il est exécuté sur l'automate distant qui répond à ta commande ?

Discussions similaires

  1. [Débutant] ProgressBar avec transfert des données
    Par tintine dans le forum C#
    Réponses: 4
    Dernier message: 04/06/2015, 14h20
  2. transfert des donneés entre feuile
    Par hicham28 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 29/05/2007, 01h23
  3. transfert des données d'un fichier text vers un fichier excel sous VB
    Par insane_80 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 24/09/2006, 13h32
  4. Transfert des données en langue arabe vers Mysql
    Par naoufal01 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 04/09/2006, 13h55

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