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

ASP.NET Discussion :

probleme de comparaison de string


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 39
    Par défaut probleme de comparaison de string
    Bonjour a tous,

    j'ai un problème assez étrange sur un projet.
    Je récupère la valeur d'un DropDownList que je met dans une variable de type string.

    Je souhaite ensuite la comparée à une variable du même type, qui sous la forme suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    string test = madropdownlist.SelectedItem.Text;
    string test2 = "P |Produit inexistant";
    if ( test.Equals(test2) ) {
         Response.write("OK");
    }
    Le problème est que je ne passe JAMAIS dans le if, pourtant, les string sont (apparemment) identique, puisque, pour en être sur, je les affiche via un Reponse.Write avant de faire mon teste d'égalité, pour être sur de ce qu'elles contiennent.

    J'ai également essayé d'utiliser la méthode Trim() sur les deux chaines, mais le résultat est le même.

    Avez vous déjà rencontré ce genre de problème ?

    C'est pas la première fois que je rencontre ce genre de problème sur des chaines de carac. c'est vraiment space la gestion du C# sur ce point précis.

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par KKshi666 Voir le message
    C'est pas la première fois que je rencontre ce genre de problème sur des chaines de carac. c'est vraiment space la gestion du C# sur ce point précis.

    Merci d'avance.
    Y a rien de space côté C#...
    Passe en debug et regarde la valeur de test et test2

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 39
    Par défaut
    Y a rien de space côté C#...
    Ouais j'imagine bien que le problème viens de mon côté, mais je t'assures ( puis-je tutoyer? ) que les valeurs des strings sont les mêmes.

    Je viens de mettre un point d'arrêt (en mode debug donc) sur la comparaison (le if), et elles contiennent bien la même chose: "P |Produit inexistant".

    C'est incompréhensible !

  4. #4
    Expert confirmé

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par défaut
    Salut,

    est-ce que ton programme compile (pas d'erreur dans la liste des erreurs) ?

    Est-ce que l'erreur se produit dans ton projet de départ ou dans un projet lie ?

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 39
    Par défaut
    Oh punaise...

    Un espace en trop sur une des chaines !

    Mais en fait le Response.Write ne montre pas les espaces en trop, il ne met qu'un espace même s'il y en avait plus. D'ou l'utilité d'utiliser le mode debug.

    Je savais pas du tout cette subtilité.

    Tu avais totalement raison C# est pas space, c'est moi qui ai du mal.

    L'une contenais un espace de plus que l'autre.

    Du coup je me demandais s'il n'existait pas une fonction qui supprimait absolument tous les espaces dans un string ?

    Parce que Trim() supprimer avant et après uniquement non ?

  6. #6
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par KKshi666 Voir le message
    Oh punaise...

    Un espace en trop sur une des chaines !

    Mais en fait le Response.Write ne montre pas les espaces en trop, il ne met qu'un espace même s'il y en avait plus. D'ou l'utilité d'utiliser le mode debug.

    Je savais pas du tout cette subtilité.

    Tu avais totalement raison C# est pas space, c'est moi qui ai du mal.

    L'une contenais un espace de plus que l'autre.

    Du coup je me demandais s'il n'existait pas une fonction qui supprimait absolument tous les espaces dans un string ?

    Parce que Trim() supprimer avant et après uniquement non ?
    Tu peux les supprimer en les remplaçant.
    Genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Test = Test.Replace(" ", "");
    Et oui, tu peux me tutoyer

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 39
    Par défaut
    Super le replace fonctionne bien et ma comparaison aussi.

    Merci à vous deux pour le coup de main !

    Résolu.

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

Discussions similaires

  1. [LG] Comparaison de strings
    Par Pack_of_the_Night dans le forum Langage
    Réponses: 2
    Dernier message: 09/02/2006, 20h58
  2. Réponses: 1
    Dernier message: 24/12/2005, 14h18
  3. [Dates] Probleme de comparaison de date
    Par mathieu77186 dans le forum Langage
    Réponses: 4
    Dernier message: 22/12/2005, 17h21
  4. [C#] Erreur comparaison de string
    Par Damsou dans le forum ASP.NET
    Réponses: 13
    Dernier message: 11/02/2005, 11h14
  5. [LG]probleme avec l'identificateur STRINGE
    Par youth dans le forum Langage
    Réponses: 3
    Dernier message: 15/08/2003, 01h42

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