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 :

Problème de découpage d'une trame (Split) [Débutant]


Sujet :

C#

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Etudiant en Informatique & Réseau
    Inscrit en
    Mars 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Etudiant en Informatique & Réseau
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2019
    Messages : 1
    Par défaut Problème de découpage d'une trame (Split)
    Bonjour, je souhaite découper une trame que je reçois pour garder que ce qui m'intéresse;
    La trame comme ceci : Ax,Ay,Az,Gx,Gy,Gz,Mx,My,Mz

    Je souhaiterais récupérer ce qui se trouve avant la 3ème virgule, c'est à dire Ax,Ay,Az et supprimer le reste.

    Pour cela j'utilise la méthode Split :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        private static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
        {
            SerialPort sp = (SerialPort)sender;
            string coordonnees = sp.ReadExisting();
            string data = coordonnees;
            string[] coordonnee = data.Split(',');
            foreach (string acceleration in coordonnee)
            {
                Console.WriteLine(" x y z :" + "\r\n");
                Console.Write(acceleration);
                Thread.Sleep(200);
            }
        }
    }

    Mais j'obtiens toutes les valeurs Ax,Ay,Az,Gx,Gy,Gz,Mx,My,Mz à la ligne une par une, mais je voudrais que Ax,Ay,Az soit côte à côte et que le reste supprimé. Vous avez une solution ?

  2. #2
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2018
    Messages : 34
    Par défaut
    oui normal il manque un "IF"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
                string[] coordonnee = data.Split(',');
                foreach (string acceleration in coordonnee)
                {
                    if (acceleration.Contains('A'))
                    {
                        Console.WriteLine(" x y z :" + "\r\n");
                        Console.Write(acceleration);
                    }
                }
    ou si t'es sur que c'est les 3 premier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      string[] coordonnee = data.Split(',');
      Console.WriteLine(" x y z :" + "\r\n");
      Console.Write(coordonnee[0] + coordonnee[1] + coordonnee[2]);

  3. #3
    Membre émérite Avatar de Momoth
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2013
    Messages
    318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 318
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var array = new List<string> { "Ax", "Ay", "Az", "Gx", "Gy", "Gz", "Mx", "My", "Mz" };
     
    var arrayPerLetter = array.ToLookup(a => a.Substring(0, 1), b => b);
    L'utilisation du lookup peut te permettre de regrouper tes éléments sur un discriminant (ici la première lettre de ta chaine). Dans l'exemple ci dessus, tu te retrouve avec trois lignes dans ton lookup.

    Clé | Valeur
    A | "AX", "AY", "AZ"
    G | "Gx", "Gy", "Gz"
    M | "Mx", "My", "Mz"

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

Discussions similaires

  1. Découpage d'une trame GPGGA
    Par Nileeda dans le forum C++
    Réponses: 2
    Dernier message: 07/04/2016, 17h27
  2. Réponses: 1
    Dernier message: 30/11/2015, 20h59
  3. découpage d'une ligne avec split
    Par FRANCO0211 dans le forum Langage
    Réponses: 7
    Dernier message: 30/06/2014, 01h15
  4. Problème de découpage de mots dans une phrase
    Par claire_cartier dans le forum C
    Réponses: 2
    Dernier message: 26/05/2008, 14h36
  5. Problème avec l'envoi d'une trame TCP
    Par fredoBreton dans le forum API, COM et SDKs
    Réponses: 14
    Dernier message: 17/11/2005, 20h19

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