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 :

Problem de Vérification de format [Débutant]


Sujet :

Windows Forms

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 13
    Points : 8
    Points
    8
    Par défaut Problem de Vérification de format
    Etant débutant dans le domaine du c# je demande de l'aide pour mon petit probleme .

    Le probleme est que j'aimerai splité le contenue d'un editor pour chaque ligne et ensuite vérifé si la syntax de chaque ligne est bien tapé, une sorte de "masque" pour vérifié le format au fur et à mesure que l'on écrit dans l'éditor. (de la sorte: CODENAME INT1 INT2 INT3 INT4)
    Pour montré à l'utilisateur si le code convient ou pas qu'il vient de tapé j'ai ensuite actioné le BackColor.

    J'ai essayer avec un Regex, mais sa marche juste pour la premiere ligne!!
    Est-ce que quelqu'un pourrait m'aidez s'il vous plait?
    J'ai deja chercher de longue journée sur Google mais désormé sans résultat.

    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
      private void Document_LineCountChanged(object sender, EventArgs e)
            {
     
                string[] lines = Regex.Split(task_1_EditorControl.Text, "/r");
     
                Regex myRegex = new Regex("^(HAKO|PIKO|MACHO) ([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+)");
     
     
                for ( int ctr = 0; ctr < lines.Length; ctr++)
                {
                    if (myRegex.IsMatch(lines[ctr]) == true)
                    {
     
                        task_1_EditorControl.BackColor = Color.Green;
     
                    }
                    else if (myRegex.IsMatch(lines[ctr]) == false)
                    {
                        task_1_EditorControl.BackColor = Color.Red;
                    }
                    else if (task_1_EditorControl.Document.TextLength == 0)
                    {
                        task_1_EditorControl.BackColor = Color.Green;
                    }
                }
     
     
            }
    Merci Beaucoup J'éspere vous pouvez m'aidez

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2007
    Messages
    256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 256
    Points : 290
    Points
    290
    Par défaut
    Bonjour à vous,

    Le problème vient probablement à la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string[] lines = Regex.Split(task_1_EditorControl.Text, "/r");
    Sous Windows une fin de ligne est marquée par "\r\n" tandis que "\r" c'est sous MacOS et "\n" sous Linux. Avec votre ligne de code tel quel le second élément dans le tableau de string commencera par un \n ce qui invalidera votre regex par la suite.

    Pour vous faciliter la vie, le framework Dotnet contient une constante Environment.NewLine donc vous pouvez remplacer la ligne ci dessus par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string[] lines = Regex.Split(task_1_EditorControl.Text, Environment.NewLine);
    ou bien encore par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    task1_EditorControl.Text.Split(Environment.NewLine);
    vu que dans votre cas vous ne souhaitez découper la string que par lignes et non selon une regexp bien précise.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    j'avais déjà essayer avec votre methode
    (task_1_EditorControle.Text.Split(Environement.NewLine)) mais il m'affiche un message d'erreur que la convertion de "String" en "char[]" n'est pas possible vou savez pourquoi?

  4. #4
    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
    Tu ne lui passes pas de paramètre valide.
    Regarde la liste d'argument que Split() accepte.

    Essayes avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string[] lignes = task1_EditorControl.Text.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
    A+

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    665
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 665
    Points : 1 161
    Points
    1 161
    Par défaut
    Bonjour,
    ou en castant la chaine de saut de ligne en caractère :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string[] lignes = task1_EditorControl.Text.Split(Convert.ToChar(Environment.NewLine));
    A voir, mon C# n'étant pas bon.

  6. #6
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2007
    Messages
    256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 256
    Points : 290
    Points
    290
    Par défaut
    Citation Envoyé par java123 Voir le message
    j'avais déjà essayer avec votre methode
    (task_1_EditorControle.Text.Split(Environement.NewLine)) mais il m'affiche un message d'erreur que la convertion de "String" en "char[]" n'est pas possible vou savez pourquoi?
    Oups j'ai oublié un élément important. Pour passer d'une string à un tableau de char, faites ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    task_1_EditorControle.Text.Split(Environement.NewLine.ToCharArray()));

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Merci beaucoup pour votre aide sa marche très bien

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

Discussions similaires

  1. vérification du format numérique d'une chaine
    Par Kiroukool dans le forum Langage SQL
    Réponses: 4
    Dernier message: 07/12/2007, 11h38
  2. Probleme complexe nombre au format texte
    Par goodsayan dans le forum Excel
    Réponses: 2
    Dernier message: 08/11/2007, 11h52
  3. [RegEx] Vérification du format d'e-mail presque bonne
    Par psychoBob dans le forum Langage
    Réponses: 2
    Dernier message: 22/04/2006, 22h07
  4. Probleme de vérification
    Par ldoudl dans le forum ASP
    Réponses: 11
    Dernier message: 01/02/2006, 00h38
  5. Problème pour afficher un format date dd/MM/yy HH:mm
    Par indy3 dans le forum Hibernate
    Réponses: 5
    Dernier message: 29/03/2005, 10h45

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