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 :

Comparaison dans un if


Sujet :

C#

  1. #1
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Par défaut Comparaison dans un if
    Bonjour,

    J'ai un petit problème de comparaison. J'aimerais effectuer la condition suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ( !condition1) et (!condition2 ou !condition3) ) then { (...)}
    Le seul problème, c'est que dans mon code cela ne passe pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ( (HashTypeSelected.SelectedItem.ToString() != "Select a hash type") && (HashToCrack.Text.ToString() != "" || HashToCrack.Text.ToString() != "Copy your hash here") )
    J'ai forcément fait une erreur, mais je ne vois pas ou

    Merci d'avance pour votre aide

    Bonne après-midi!

  2. #2
    Max
    Max est déconnecté
    Expert confirmé

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Par défaut
    Salut.

    Les comparaisons de String se font avec la méthode Equals et no avec les opérateurs == ou != :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ( (!HashTypeSelected.SelectedItem.ToString().Equals("Select a hash type")) && (!HashToCrack.Text.ToString().Equals("") || !HashToCrack.Text.ToString().Equals("Copy your hash here")) )
    Bon courage

    Note : tu peux remplacer "" par string.empty

  3. #3
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Citation Envoyé par eusebe19 Voir le message
    Les comparaisons de String se font avec la méthode Equals et no avec les opérateurs == ou != :
    Bah pourtant, ils existent ces opérateurs, pourquoi ne pas s'en servir ?

    L'erreur est là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (HashToCrack.Text.ToString() != "" || HashToCrack.Text.ToString() != "Copy your hash here")
    qui, simplifié, est :
    (a != b) ou (a !=c), ce qui est toujours vrai (sinon, ça voudrait dire que a= b =c, ce qui est pas possible vu que b != c)

    Et craquer des hash, c'est maaaaal

  4. #4
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Par défaut
    Citation Envoyé par Guulh Voir le message
    Bah pourtant, ils existent ces opérateurs, pourquoi ne pas s'en servir ?

    L'erreur est là :
    (HashToCrack.Text.ToString() != "" || HashToCrack.Text.ToString() != "Copy your hash here")
    qui, simplifié, est :
    (a != b) ou (a !=c), ce qui est toujours vrai (sinon, ça voudrait dire que a= b =c, ce qui est pas possible vu que b != c)

    Et craquer des hash, c'est maaaaal
    En effet, cracker des hash c'est pas bieeeen :p mais c'est là que à titre d'aide pour mes audits ^^

    Pour en revenir au code:
    En faite ce que je veux faire c'est testé si la condition1 ET une des deux conditions (a!=b, a!=c) n'est pas remplie, alors il ne rentre pas dans la boucle.

    J'ai pensé à faire un if avec la première condition, puis un case avec ces deux cas, mais je trouvais la solution dans le if plus élégante...

  5. #5
    Max
    Max est déconnecté
    Expert confirmé

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Par défaut
    Citation Envoyé par Guulh Voir le message
    Bah pourtant, ils existent ces opérateurs, pourquoi ne pas s'en servir ?
    Autant pour moi

    Merci pour le rappel à l'ordre

  6. #6
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Citation Envoyé par Leelith Voir le message
    En faite ce que je veux faire c'est testé si la condition1 ET une des deux conditions (a!=b, a!=c) n'est pas remplie,
    Attention !(a & b) n'est pas (!a & !b), c'est (!a | !b).

    eusebe19 : dans le fond t'as raison, parce que quand on compare des chaînes, il vaut mieux passer la culture en paramètre

  7. #7
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Par défaut
    Citation Envoyé par Guulh Voir le message
    Attention !(a & b) n'est pas (!a & !b), c'est (!a | !b).

    eusebe19 : dans le fond t'as raison, parce que quand on compare des chaînes, il vaut mieux passer la culture en paramètre
    Je ne suis pas sûr de comprendre.

    Ma logique n'est pas correcte, mais je ne vois pas d'ou vient le problème:

    Je test si la condition1 n'est pas égale, ET si une des 2 autres ne l'est pas non plus. Si la condition1 ou une des deux autres conditions le sont, alors ça passe dans la partie else pour afficher un message d'erreur.

  8. #8
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Reprenons

    Ton code, actuellement, est :
    if (x != y) & ( (a != b) | (a != c) ), on est d'accord ? La partie x != y est ok, on y touche pas.

    Ce que tu veux c'est t'assurer que HashToCrack.Text est ni égal à "", ni égal à "Copy your hash here" ? Donc c'est (a != b) & (a != c) que tu dois écrire.

  9. #9
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Par défaut
    Mon dieu! Quelle erreur!

    Merci bien pour ton aide! Pas facile des fois quand on a la tête dans le guidon et qu'on est pas dév pro ^^

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/04/2007, 20h06
  2. Problème de comparaison dans une proc
    Par hpavavar dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 27/02/2007, 13h34
  3. Recherche et comparaison dans un dictionnaire
    Par metalamania dans le forum Général Python
    Réponses: 5
    Dernier message: 20/02/2007, 10h26
  4. [2003] comparaison dans un fichier texte
    Par souaddemaroc dans le forum VB.NET
    Réponses: 14
    Dernier message: 09/02/2007, 09h28
  5. Réponses: 27
    Dernier message: 12/01/2006, 11h04

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