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

Windows Forms Discussion :

Problème Substring C#


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2017
    Messages : 48
    Points : 18
    Points
    18
    Par défaut Problème Substring C#
    Bonsoir à tous ,

    j'ai fait une application qui affiche le numéro d'une carte RFID or , j'aimerais réduire le début car c'est identique aux autres cartes que j'ai grâce à Substring ( j'y était arriver en mode console mais en passant en winform je n'y arrive pas).
    Et comme erreur j'ai startIndex ne peut pas être supérieur à la longueur de la chaîne.

    Voici mon code :
    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
    namespace RFID
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
     
            private void Form1_Load(object sender, EventArgs e)
            {
                serialPort1.Open();
                timer1.Start();
            }
     
     
            private void close_Click(object sender, EventArgs e)
            {
                timer1.Stop();
                serialPort1.Close();
                System.Environment.Exit(0);
            }
     
            public void timer1_Tick(object sender, EventArgs e)
            {
     
                string A = serialPort1.ReadExisting();
     
                string B = A.Substring(11,16);
     
     
                richTextBox1.AppendText(B);
     
            }
     
     
        }
    }
    L'affichage est le suivant :
    Et donc je voudrais raccourcir le numéro de la carte à : 6457C
    Et si quelqu'un connais aussi le carré qu'il y a à la 2 ème ligne?

    Merci d'avance!

  2. #2
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    ton erreur vient du fait que ta string A fait moins de 11 char.
    M'est avis que de temps à autres serialPort1.ReadExisting() te renvoie du rien.

    Le caractère bizarre que tu vois (le carré) signifie qu'il tente d'afficher un caractère qui n'est pas défini dans la font utilisée (généralement ça vient du fait qu'on écrit du caca, pas qu'on a réellement un caractère intéressant qu'on ne sait pas afficher).
    Plus je connais de langages, plus j'aime le C.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2017
    Messages : 48
    Points : 18
    Points
    18
    Par défaut
    Pourtant quand je fais un Length j'ai 16 caractère lorsque je passe ma carte RFID

  4. #4
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Disons que l'erreur est explicitement celle-ci.
    Ensuite je vois que l'action est dans un timer, du coup il y a le risque qu'un tick soit lancé alors qu'il n'y a pas/plus de puce à lire.
    Un truc simple à faire : lance en mode debug (F5), VS s'arrêtera là où l'erreur apparaît, et tu pourras alors vérifier la valeur de A à cet instant précis.
    Plus je connais de langages, plus j'aime le C.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2017
    Messages : 48
    Points : 18
    Points
    18
    Par défaut
    Justement , l'erreur est au code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string B = A.Substring(11, 16);
    que le débogage s'arrête.

  6. #6
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Bien évidemment que c'est sur cette ligne, puisque c'est l'appel à Substring qui lève l'exception (A n'a pas 11 char min)
    Mais quand tu t'arrêtes à ce niveau (avec l'exception levée), quelle est la valeur de A ?
    Plus je connais de langages, plus j'aime le C.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2017
    Messages : 48
    Points : 18
    Points
    18
    Par défaut
    La valeur de A est de 0 quand il n'y a pas de carte et lorsque je passe la carte c'est à 16.

  8. #8
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Voili voilou, il te suffit donc de faire la vérif' de la validité de A (ou au moins que sa Length soit > 11) avant de faire ton Substring et d'ajouter le résultat à ta RichTextBox
    Plus je connais de langages, plus j'aime le C.

Discussions similaires

  1. Problème substring tMap
    Par Bugatti dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 05/07/2011, 12h30
  2. Problème SUBSTR-CAST-AVG valeur NULL
    Par zoharcryss dans le forum Langage SQL
    Réponses: 1
    Dernier message: 23/07/2009, 12h07
  3. problème sur substring (fonction inconnue)
    Par nerick dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 13/12/2005, 15h46
  4. problème avec substring
    Par LE NEINDRE dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 19/10/2005, 13h47
  5. Problème avec un substring
    Par yoda_style dans le forum ASP
    Réponses: 4
    Dernier message: 20/04/2004, 11h29

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