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

Framework .NET Discussion :

comparaisons de chaine de caractères oO


Sujet :

Framework .NET

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2005
    Messages : 163
    Points : 102
    Points
    102
    Par défaut comparaisons de chaine de caractères oO
    Bonjour,

    Je viens de rencontrer un problème assez bizarre , que je n'arrive pas à expliquer peut être y arriverez vous

    Soit le code suivant :
    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
     
     public double ComputeDistanceBetweenTwoPoints(int[] _latitude_a, string  _dirlat_a, int[] _longitude_a, string _dirlong_a, int[] _latitude_b, string _dirlat_b, int[] _longitude_b, string _dirlong_b)
            {
     
                Console.WriteLine(" latitude a:  "+ _dirlat_a);
                Console.WriteLine(" latitude b:  "+ _dirlat_b);
                Console.WriteLine("longitude a:  "+ _dirlong_a);
                Console.WriteLine("longitude b:  "+ _dirlong_b);
     
     
                if (_dirlat_a==_dirlat_b)
                    Console.WriteLine(" Premier if");
     
     
               else  if(_dirlat_a != _dirlat_b)
                        Console.WriteLine(" Deuxième if");
     
     
                if(_dirlong_a == _dirlong_b)
                   Console.WriteLine(" Troisieme if");
     
               else if(_dirlong_a != _dirlong_b)
                 Console.WriteLine(" Quatrième if");
    }
    Croyez le ou pas j'obtiens le résultat suivant :


    Comme vous le voyez les chaines de caractères ont beau être égales , c'est le bout de code du if(!=) qui est exécuté !

    Où est le problème ?
    Merci

  2. #2
    Membre habitué Avatar de Nikoui
    Inscrit en
    Décembre 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Décembre 2007
    Messages : 119
    Points : 142
    Points
    142
    Par défaut
    Remplaces :

    _dirlat_a==_dirlat_b

    par :

    _dirlat_a.Equals(_dirlat_b)

  3. #3
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2005
    Messages : 163
    Points : 102
    Points
    102
    Par défaut
    Et bien je viens d'essayer ce que tu viens de proposer et c'est le même résultat .

    Puis en principe les == et != fonctionnent parfaitement ! ( je viens de consulter la doc MSDN )

    C'est quoi ce binz ?

  4. #4
    Membre habitué Avatar de Nikoui
    Inscrit en
    Décembre 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Décembre 2007
    Messages : 119
    Points : 142
    Points
    142
    Par défaut
    Il n'y aurai pas des espaces ou des tabulations après les valeurs que tu testes ? Par exemple "N" et "N " ? (si c'est le cas, un petit "Trim" appliqué en entrée devrait régler le problème)

  5. #5
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2005
    Messages : 163
    Points : 102
    Points
    102
    Par défaut
    J'ai appliqué cela au début de ma méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
       _dirlat_a.Trim();
       _dirlat_b.Trim();
       _dirlong_a.Trim();
        _dirlong_b.Trim();
    Par contre j'obtiens toujours le même résultat

    EDIT : Je crois utile de noter le fait que _dirlat_a et _dirlong_a ont été tirés d'une table SQL Server ( format nchar(10) ) , par contre _dirlat_b et _dirlong_b ont été passées directement en paramètre . ( les deux premiers ont aussi été passés en paramètre mais préalablement tirés d'une table SQL Server )

    Merci

  6. #6
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Ceci : ne fait rien. Trim renvoie une instance trim"ée".
    Ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _dirlat_a = _dirlat_a.Trim();
    te donnera le résultat escompté.

  7. #7
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2005
    Messages : 163
    Points : 102
    Points
    102
    Par défaut
    Merci , effectivement le problème venait de là

    Problème résolu donc .

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

Discussions similaires

  1. [débutant] Comparaison début chaines de caractères
    Par Anthony17 dans le forum Delphi
    Réponses: 2
    Dernier message: 01/06/2006, 16h44
  2. Réponses: 2
    Dernier message: 10/05/2006, 15h23
  3. comparaison de chaine de caractères
    Par lecyberax dans le forum C
    Réponses: 10
    Dernier message: 24/03/2006, 19h30
  4. Réponses: 2
    Dernier message: 23/03/2006, 12h39
  5. Réponses: 11
    Dernier message: 22/03/2006, 21h57

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