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 :

Remplissage d'un tableau


Sujet :

C#

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 4
    Par défaut Remplissage d'un tableau
    Bonjour,

    Je reçois des paquets de données à intervalle régulier par le port série sous cette forme:

    X1 Y1 Z1 -> premier envoi
    X2 Y2 Z2 -> deuxième envoi
    ...

    J'aimerais pouvoir les mettre dans un tableau afin de pouvoir les traiter : faire une moyenne à chaque réception des X par exemple.

    Cela me pose problème car je n'arrive pas à les mettre dans un tableau.

    Merci de votre aide.

  2. #2
    Membre Expert
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 678
    Par défaut
    Bonjour,

    de quelle façon tu les lis aussi ? Sous forme d'un String complet , de Bytes brut ?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 4
    Par défaut
    Je reçois des chaînes (ce sont en fait des nombres lus sous forme string). Pour les mettre dans un tableau, j'imagine qu'il faut mettre une boucle, mais je n'y arrive pas... Saurais-tu m'aider ?

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur / architecte
    Inscrit en
    Juillet 2009
    Messages
    473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur / architecte

    Informations forums :
    Inscription : Juillet 2009
    Messages : 473
    Par défaut
    le tableau me semble mal indiqué pour stocker quelque chose dont il me semble que tu ne connais pas la taille par avance... Un collection plus malléable genre List<> serait mieux indiquée, non?

    Sinon, faudrait peut être un peu de code pour comprendre la situation...

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 4
    Par défaut
    J'ai également essayé avec une liste. Voici le bout de mon programme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    string texte = PortUSB.ReadLine();
    List<string> Liste = new List<string>();
    *
    while (PortUSB.ReadBufferSize>0)
    {
    Liste.Add(texte);
    }
    J'ai essayé avec ou sans boucle, boucle for, while, if... Mais rien à faire...

  6. #6
    Membre émérite
    Homme Profil pro
    Développeur / architecte
    Inscrit en
    Juillet 2009
    Messages
    473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur / architecte

    Informations forums :
    Inscription : Juillet 2009
    Messages : 473
    Par défaut
    As-tu déjà essayé de faire un pauvre programme console qui lits le port USB et qui le balance à l'écran... Ca marche?

    Rien à faire quoi? Qu'est ce qui se passe... C'est pas très précis.

    J'ai mon idée la dessus. Dans ce que tu as écris, tu vas empiler le même texte lu la première fois dans ta liste à chaque fois que PortUSB.ReadBufferSize>0...

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 4
    Par défaut
    Bonjour,

    Oui, mon programme peut lire le port et mettre ce qu'il lit dans une Richtextbox. En commençant, je ne connaissais pas C#, je me suis aidé des cours et tutoriel C# de Développez pour arriver à ce résultat. Voilà le bout de code qui s'occupe de ç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
     
            private void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e) // Création du gestionnaire de réception
            {
     
                    string texte;
                    texte = PortUSB.ReadLine();
                    SetText(texte);
            } // private void DataReceivedHandler
     
            private void SetText(string text)
            {
                    if (BoxReception.InvokeRequired)
                    {
                        SetTextCallback d = new SetTextCallback(SetText);
                        BoxReception.Invoke(d, new object[] {text});
                    } // if
     
                    else
                    {
                        BoxReception.Text += text;
                    } // else
             } // private void SetText

    J'ai également fait un bouton "Connexion/Déconnexion". Et en fait, quand je mets la boucle, je me connecte, rien ne s'affiche dans ma Richtextbox, et lorsque je veux déconnecter, pas moyen de faire quoi que ce soit, je suis obligé d'interrompre le débogage "à la main".
    Je pense comprendre ce que tu veux dire. En fait, à chaque fois, la donnée nouvellement reçue va écraser la précédente, c'est ça ? Je croyais pourtant ne pas avoir affaire à ce problème avec List.Add(). Comment puis-je éviter ce problème ?

Discussions similaires

  1. [HashMap] lecture d'1 hasmap et remplissage d'un tableau
    Par _KB_ dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 30/06/2006, 20h33
  2. [VBA-E] eviter blanc remplissage listbox avec tableau
    Par chmod777 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/04/2006, 13h16
  3. [LG]Remplissage d'un tableau
    Par luno2545 dans le forum Langage
    Réponses: 2
    Dernier message: 29/01/2004, 22h47
  4. Réponses: 13
    Dernier message: 14/10/2003, 15h31
  5. Réponses: 11
    Dernier message: 04/08/2003, 16h30

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