Limite du nombre d' essai de password

mervelis - Modifié le 29 avril 2019 à 22:07
Whismeril Messages postés 18416 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 7 juin 2023 - 2 mai 2019 à 07:41
Bonjour, j'ai un problème, je n'arrive pas à limiter le nombre de saisie à 3 pour la tentative de password. En fait la boucle continue jusqu'à amener le compteur directement à 3 sans me laisser entrer un nouveau mot de passe donc forcément à chaque fois il sera mauvais. Est-ce que quelqu'un pourrait m'aider, je débute en VB.net et je suis bloqué. voici mon code^^
Citation

lePrivate Sub BTvalider_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTvalider.Click Dim NB_Essais_MAX As Integer Dim NB_essais_Restant As Integer Dim Password As String Dim Compteur As Integer Dim controle As Boolean NB_Essais_MAX = 3 Password = "password" Compteur = 0 controle = True While controle Compteur = Compteur + 1 NB_essais_Restant = NB_Essais_MAX - Compteur If TBpass.Text = Password Then MsgBox("Mot de Passe Correct !") controle = False Form2.Show() Else If Compteur = NB_Essais_MAX Then MsgBox("Le Nombre Limite d'essais est atteint ! Le programme va maintenant se fermer!") controle = False Application.Exit() End If If TBpass.Text <> Password Then MsgBox("Mauvais Mot de passe et NB° ESSAIS est " & Compteur) TBpass.Car() End If End If End While End Sub

Merci^^

5 réponses

Whismeril Messages postés 18416 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 7 juin 2023 624
29 avril 2019 à 20:54
Bonjour
merci de lire et d'appliquer ce qui est décrit là
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

0
vb95 Messages postés 3418 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 31 mai 2023 165
Modifié le 30 avril 2019 à 01:44
bonjour mervelis !
Les retours à la ligne n'existent pas chez toi ?
Car ton code est toujours aussi illisible
et pour les débutants un excellent cours : https://plasserre.developpez.com/cours/vb-net/

0
Whismeril Messages postés 18416 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 7 juin 2023 624
30 avril 2019 à 07:18
Bonjour
Comme le note VB95, que je salue, malgré l’intervention de Karamel, qui a ajouté les balises de code, tout sur une ligne c’est illisible.

Si tu veux que l’on essaye de t’aider, il faut nous en donner l’envie.
Décrypter un truc imbittable ça ne donne pas envie.
0
Whismeril Messages postés 18416 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 7 juin 2023 624
Modifié le 30 avril 2019 à 17:34
Bonjour

Maintenant que ton code est lisible, tu peux remercier Karamel et VB95, décortiquons ce que fait ton code, enfin cette partie
    'Quand tu cliques, et que le password est incorrect
    Dim Password As String = "password"
    Dim NbEssais As Integer = 3 
    Dim Correct as Boolean = False
    While NbEssais > 0 'quand tu cliques sur le bouton c'est toujours 3
        NbEssais = NbEssais - 1 
        If TBpass.Text = Password Then 'on vient pas ici
            MsgBox("Mot de Passe Correct !")
            Correct = True
            NbEssais = 0
        Else 'on vient là
            MsgBox("Mauvais Mot de passe et il reste " & NbEssais.ToString & " essais") 
            TBpass.Car() ' Comme l'a dit VB95 on ne sait pas ce que fait cette méthode, donc je continue mon analyse en y faisant abstraction
        End If 
    End While 'et ici on retourne au début du while
 


    
'2eme tour
While NbEssais > 0 'NbEssais vaut 2, il s'est passé moins d'1 milliseconde depuis le click sur le messageBox,  TBpass.Text n'a pas changé (sauf si TBpass.Car() y fait quelque chose, mais ça on ne sait pas)
        NbEssais = NbEssais - 1 
        If TBpass.Text = Password Then 'on vient toujours pas ici
            MsgBox("Mot de Passe Correct !")
            Correct = True
            NbEssais = 0
        Else 'on revient forcément là
            MsgBox("Mauvais Mot de passe et il reste " & NbEssais.ToString & " essais") 
            TBpass.Car()
        End If 
    End While ' ici on retourne au début du while


Et ainsi de suite jusqu'à ce que NbEssais vaille 0

Vois tu ce qui cloche dans ton algorithme?
Quand j'étais petit, la mer Morte n'était que malade.
George Burns
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vb95 Messages postés 3418 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 31 mai 2023 165
Modifié le 30 avril 2019 à 13:26
Bonjour à vous deux !
En mettant les Retours à la ligne cela est plus lisible
Et en modifiant ton code cela devient plus clair
On supprime tout d'abord le "le" qui est collé au Private Sub.
C'est quoi
TBpass.Car()
? ( voir les points d'interrogation )

Private Sub BTvalider_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTvalider.Click 
     ' on déclare et initialise les variables
    Dim Password As String = "password"
    Dim NbEssais As Integer = 3 ' nombre d'essais max
    Dim Correct as Boolean = False
    While NbEssais > 0 ' tant qu'il reste des essais possibles
        NbEssais = NbEssais - 1 
        If TBpass.Text = Password Then 
            ' mot de passe OK 
            MsgBox("Mot de Passe Correct !")
            Correct = True
            NbEssais = 0 ' on met à 0 pour pouvoir sortir du While
        Else 
            ' mauvais mot de passe
            MsgBox("Mauvais Mot de passe et il reste " & NbEssais.ToString & " essais") 
            TBpass.Car() ' ?????
        End If 
    End While 
    If Correct = False then 
        MsgBox("Le nombre limite d'essais est atteint ! Le programme va maintenant se fermer!") 
        Application.Exit()
    Else 
        Form2.Show() ' mot de passe correct : on affiche la seconde form
    End If
End Sub




-1
Bonsoir, merci beaucoup vb95 mon problème est résolu
0
vb95 Messages postés 3418 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 31 mai 2023 165 > mervelis
Modifié le 2 mai 2019 à 00:53
bonsoir !
1) Ce serait bien que tu postes la solution en l'expliquant
2) Ensuite cette première étape accomplie cliques sur la roue dentée en haut à droite tout en haut pour mettre ce sujet "en résolu"
Merci
0
Whismeril Messages postés 18416 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 7 juin 2023 624 > vb95 Messages postés 3418 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 31 mai 2023
2 mai 2019 à 07:41
Bonjour vb, sur la dizaine de sujet ouverts par Mervelis, un seul est marqué résolu et c’est un modérateur qui l’a fait.
0