Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

problème dans mon mini projet développé en visual basic express 2010



  1. #1
    bamboutchatunisiano

    Exclamation problème dans mon mini projet développé en visual basic express 2010


    ------

    Dans l'accueil de mon mini projet on a deux zones de texte(nom d'utilisateur et mot de passe)chaque fois il y a inscription ,le nom de l'utilisateur +mot de passe sont envoyés vers un combo box de l'administrateur pour que l'abonné puisse une autre fois se connecter avec le même mot de passe et nom .pour l'instant tout ça marche mais le problème arrive lorsque je redémarre l'application de nouveau et je veux me connecter il me demande de s'inscrire de nouveau et lorsque je vérifie le combo box je trouve qu'il est vide et ne contient aucun abonné. Où est le problème???

    voilà Mon travail:

    Code:
      Private Sub Valider_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Valider.Click
    
            If Textutil.Text.Contains(" ") = True Then
                MsgBox("Les espaces sont pas autorisés dans le nom d'utilisateur!", vbOKOnly, "Erreur")
            ElseIf Textpass.Text = Textconfirm.Text And frmGestion.CboListe.Items.Contains(Textutil.Text + " " + Textpass.Text) = False And frmGestion.CboAdmin.Items.Contains(Textutil.Text + " " + Textpass.Text) = False And Textutil.Text <> "" And Textpass.Text <> "" And Textconfirm.Text <> "" Then
                frmGestion.CboListe.Items.Add(Textutil.Text + " " + Textpass.Text)
                MsgBox("Vous êtes inscrit!", vbInformation + vbOKOnly, "Confirmation")
                Textutil.Clear()
                Textpass.Clear()
                Textconfirm.Clear()
                Me.Hide()
                frmAcceuil.Show()
            ElseIf frmGestion.CboListe.Items.Contains(Textutil.Text + " " + Textpass.Text) = True And frmGestion.CboAdmin.Items.Contains(Textutil.Text + " " + Textpass.Text) = True Then
                MsgBox("le nom d'utilisateur existe déjà!", vbExclamation + vbOKOnly, "Avertissement")
            ElseIf Textpass.Text <> Textconfirm.Text Then
                MsgBox("La confirmation est différente du mot de passe!", vbExclamation + vbOKOnly, "Avertissement")
            ElseIf Textutil.Text = "" Then
                MsgBox("vous n'avez pas saisie de nom d'utilisateur!", vbExclamation + vbOKOnly, "Avertissement")
            ElseIf Textpass.Text = "" Then
                MsgBox("vous n'avez pas saisie de mot de passe!", vbExclamation + vbOKOnly, "Avertissement")
            End If
    
        End Sub
    End Class

    -----
    Dernière modification par JPL ; 31/03/2011 à 19h04. Motif: Ajout de la balise Code pour la lisibilité

  2. Publicité
  3. #2
    whoami

    Re : problème dans mon mini projet développé en visual basic express 2010

    Bonjour,

    Ça s'appelle : il faut enregistrer les données dans un fichier, car tout ce que tu fais avec ton logiciel est créé en mémoire, qu'évidemment tu ne retrouves pas lors de l'utilisation suivante.
    Dernière modification par JPL ; 31/03/2011 à 19h06. Motif: Titre

  4. #3
    bamboutchatunisiano

    Re : problème dans mon mini projet développé en visual basic express 2010

    Citation Envoyé par bamboutchatunisiano Voir le message
    Dans l'accueil de mon mini projet on a deux zones de texte(nom d'utilisateur et mot de passe)chaque fois il y a inscription ,le nom de l'utilisateur +mot de passe sont envoyés vers un combo box de l'administrateur pour que l'abonné puisse une autre fois se connecter avec le même mot de passe et nom .pour l'instant tout ça marche mais le problème arrive lorsque je redémarre l'application de nouveau et je veux me connecter il me demande de s'inscrire de nouveau et lorsque je vérifie le combo box je trouve qu'il est vide et ne contient aucun abonné. Où est le problème???

    voilà Mon travail:

    Code:
      Private Sub Valider_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Valider.Click
    
            If Textutil.Text.Contains(" ") = True Then
                MsgBox("Les espaces sont pas autorisés dans le nom d'utilisateur!", vbOKOnly, "Erreur")
            ElseIf Textpass.Text = Textconfirm.Text And frmGestion.CboListe.Items.Contains(Textutil.Text + " " + Textpass.Text) = False And frmGestion.CboAdmin.Items.Contains(Textutil.Text + " " + Textpass.Text) = False And Textutil.Text <> "" And Textpass.Text <> "" And Textconfirm.Text <> "" Then
                frmGestion.CboListe.Items.Add(Textutil.Text + " " + Textpass.Text)
                MsgBox("Vous êtes inscrit!", vbInformation + vbOKOnly, "Confirmation")
                Textutil.Clear()
                Textpass.Clear()
                Textconfirm.Clear()
                Me.Hide()
                frmAcceuil.Show()
            ElseIf frmGestion.CboListe.Items.Contains(Textutil.Text + " " + Textpass.Text) = True And frmGestion.CboAdmin.Items.Contains(Textutil.Text + " " + Textpass.Text) = True Then
                MsgBox("le nom d'utilisateur existe déjà!", vbExclamation + vbOKOnly, "Avertissement")
            ElseIf Textpass.Text <> Textconfirm.Text Then
                MsgBox("La confirmation est différente du mot de passe!", vbExclamation + vbOKOnly, "Avertissement")
            ElseIf Textutil.Text = "" Then
                MsgBox("vous n'avez pas saisie de nom d'utilisateur!", vbExclamation + vbOKOnly, "Avertissement")
            ElseIf Textpass.Text = "" Then
                MsgBox("vous n'avez pas saisie de mot de passe!", vbExclamation + vbOKOnly, "Avertissement")
            End If
    
        End Sub
    End Class
    Oui j'ai pensé a cette idée mais je ne sais pas comment enregistrer les données dans un fichier .Si vous savez, pouvez-vous m'aider?
    merci d'avance

  5. #4
    bamboutchatunisiano

    Re : problème dans mon mini projet développé en visual basic express 2010

    Oui j'ai pensé a cette idée mais je ne sais pas comment enregistrer les données dans un fichier .Si vous savez, pouvez-vous m'aider

  6. #5
    Dormeur74

    Re : problème dans mon mini projet développé en visual basic express 2010

    Whoami++

    Tes premières instructions devraient commencer par l'ouverture du fichier des inscrits et par le chargement des inscrits dans la Combobox. Pas de fichier d'inscription, pas de mémoire.

    Au-delà de ces considérations, il faut impérativement que tu oublies le plus rapidement possible le Elsif dont tu abuses dans ton code. Goto et Elseif sont des instructions "piège" à n'utiliser que dans des situations particulières (ex : on Error Goto GESTERROR) ou dans des schémas très simples comme "0" ou "1", "True" ou "False", etc..

    Enfin, la structure de ton bloc conditionnel est mauvaise, car tu es loin d'avoir étudié tous les cas où il s'agit vraiment d'un nouvel inscrit.

    Pour créer un fichier d'inscription, regarde l'intruction Open [nomFichier] for Output as #n et pour le lire Open [nomFichier] for Input as #n

  7. A voir en vidéo sur Futura
  8. #6
    bzh_nicolas

    Re : problème dans mon mini projet développé en visual basic express 2010

    Citation Envoyé par Dormeur74 Voir le message
    Au-delà de ces considérations, il faut impérativement que tu oublies le plus rapidement possible le Elsif dont tu abuses dans ton code. Goto et Elseif sont des instructions "piège" à n'utiliser que dans des situations particulières (ex : on Error Goto GESTERROR) ou dans des schémas très simples comme "0" ou "1", "True" ou "False", etc..
    Je ne vois pas en quoi le elseif est une instruction piège (en tout cas par rapport au goto) à partir du moment où sa structure est correctement organisée et que tu n'inclus pas des goto ou des exit à tout bout de champs à l'intérieur.

  9. Publicité
  10. #7
    bamboutchatunisiano

    Re : problème dans mon mini projet développé en visual basic express 2010

    J’ai trouvé le code source de lecture et écriture d'un fichier en VB .6 mais il n'est pas compatible en VB express 2010.aidez-moi s'il vous plait.

  11. #8
    Dormeur74

    Re : problème dans mon mini projet développé en visual basic express 2010

    Je ne vois pas en quoi le elseif est une instruction piège
    Parce qu'un truc comme le code ci-dessous est très difficile à gérer. J'en veux pour preuve qu'avec ce code, quoiqu'il arrive on est toujours inscrit (je l'ai essayé).
    Et puis une floppée de ElseIf sans un modeste petit Else en final pour laisser la porte ouverte aux cas que l'on n'a pas prévus (entre les majuscules et les minuscules ici il y a encore de quoi faire).

    Code:
    ElseIf Textpass.Text = Textconfirm.Text And frmGestion.CboListe.Items.Contains(Textutil.Text + " " + Textpass.Text) = False And frmGestion.CboAdmin.Items.Contains(Textutil.Text + " " + Textpass.Text) = False And Textutil.Text <> "" And Textpass.Text <> "" And Textconfirm.Text <> "" Then
                frmGestion.CboListe.Items.Add(Textutil.Text + " " + Textpass.Text)
                MsgBox("Vous êtes inscrit!", vbInformation + vbOKOnly, "Confirmation")
    Je ne parle pas des deux dernières conditions qui sont strictement identiques, mais qui donnent des messages différents.

    Après-demain, si personne ne l'a fait d'ici là, je prendrai un peu de temps pour te montrer comment on enregistre dans un fichier séquentiel les logins et les mots de passe de tes clients.

    Entre temps essaye de te faire les dents sur Select Case et décompose au maximun ton bloc conditionnel. Ton filtre sera beaucoup plus solide. Tu devrais d'ailleurs nous proposer le pseudo-code de ce filtre.

  12. #9
    Dormeur74

    Re : problème dans mon mini projet développé en visual basic express 2010

    Chose promise, chose due.

    Code:
    Imports System
    Imports System.IO
    Imports System.Text
    
    ' J'ai mis la CboListe dans la feuille contenant les zones de saisie pour simplifier le tout
    Public Class frmAcceuil
    
        Private Sub Valider_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Valider.Click
            Dim fichier As String
            Dim fs As FileStream
    
            fichier = Application.StartupPath & "\enregistrements.txt"
    
            ' Si le fichier de sauvegarde n'existe pas, on le crée
            If Dir(fichier) = "" Then
                fs = File.Create(fichier)
                fs.Close()
            End If
    
            ' ************* DEBUT LECTURE DU FICHIER DES ENREGISTREMENTS *************
            ' Si le fichier contient des données on les charge dans la combo
            Dim sr As StreamReader = New StreamReader(fichier)
            Dim enregistrement As String
            CboListe.Items.Clear()
            Do
                enregistrement = sr.ReadLine()
                If Not enregistrement Is Nothing Then
                    CboListe.Items.Add(enregistrement)
                End If
            Loop Until enregistrement Is Nothing
            sr.Close()
            ' ************** FIN LECTURE DU FICHIER DES ENREGISTREMENTS **************
    
    
            ' Les trois champs doivent être remplis
            If TextUtil.Text = "" Then MsgBox("Le champ utilisateur doit être rempli !") : TextUtil.Focus() : Exit Sub
            If TextPass.Text = "" Then MsgBox("Vous devez entrer un mot de passe !") : TextPass.Focus() : Exit Sub
            If TextConfirm.Text = "" Then MsgBox("Vous devez confirmer le mot de passe !") : TextConfirm.Focus() : Exit Sub
    
            ' On vérifie que le mot de passe et sa confirmation sont identiques
            If TextPass.Text <> TextConfirm.Text Then
                MsgBox("Erreur de saisie, le mot de passe est différent de sa confirmation")
                TextPass.Text = Nothing
                TextConfirm.Text = Nothing
                TextPass.Focus()
                Exit Sub
            End If
    
    
            ' On concatène le Login et le mot de passe en mettant ":" comme séparateur
            Dim identifiant As String
            identifiant = TextUtil.Text & ":" & TextPass.Text
            ' On regarde si le couple login:passwd se trouve dans la ComboBox
            Dim i, itemExiste As Integer
            itemExiste = -1
            For i = 0 To CboListe.Items.Count - 1
                If CboListe.Items(i) = identifiant Then
                    itemExiste = i
                    Exit For
                End If
            Next
    
            ' **************** DEBUT SAUVEGARDE DU NOUVEL ENREGISTREMENT ***************
            If itemExiste = -1 Then
                ' On ajoute l'enregistrement dans la combo
                CboListe.Items.Add(identifiant)
                ' On sauvegarde le nouvel indentifiant
                Dim sw As StreamWriter
                sw = File.AppendText(fichier)
                sw.WriteLine(identifiant)
                sw.Flush()
                sw.Close()
                MsgBox("Identifiants enregistrés")
                TextUtil.Text = Nothing
                TextPass.Text = Nothing
                TextConfirm.Text = Nothing
            Else
                MsgBox("Vous êtes déjà enregistré")
            End If
            ' **************** FIN SAUVEGARDE DU NOUVEL ENREGISTREMENT ****************
    
    
        End Sub
    
        ' ************ DEBUT DU CONTROLE DES CARACTERES INTERDITS DU CLAVIER ************
        Private Sub TextUtil_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextUtil.KeyPress
            Dim Erreur As Boolean
            ' On n'accepte que les lettres de l'alphabet et les chiffres
            Erreur = False
            If e.KeyChar < ChrW(48) Or e.KeyChar > ChrW(122) Then Erreur = True
            If e.KeyChar > ChrW(57) And e.KeyChar < ChrW(65) Then Erreur = True
            If e.KeyChar > ChrW(90) And e.KeyChar < ChrW(97) Then Erreur = True
            'On autorise les touches Suppr, Retour arrière et Entrée
            If e.KeyChar = ChrW(46) Or e.KeyChar = ChrW(8) Or e.KeyChar = ChrW(13) Then Erreur = False
    
            If Erreur Then
                e.Handled = True
                MsgBox("Seules les lettres de l'alphabet non accentuées et les chiffres sont autorisés !")
            End If
        End Sub
    
        Private Sub TextPass_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextPass.KeyPress
            Dim Erreur As Boolean
            ' On n'accepte que les lettres de l'alphabet et les chiffres
            Erreur = False
            If e.KeyChar < ChrW(48) Or e.KeyChar > ChrW(122) Then Erreur = True
            If e.KeyChar > ChrW(57) And e.KeyChar < ChrW(65) Then Erreur = True
            If e.KeyChar > ChrW(90) And e.KeyChar < ChrW(97) Then Erreur = True
            'On autorise les touches Suppr, Retour arrière et Entrée
            If e.KeyChar = ChrW(46) Or e.KeyChar = ChrW(8) Or e.KeyChar = ChrW(13) Then Erreur = False
    
            If Erreur Then
                e.Handled = True
                MsgBox("Seules les lettres de l'alphabet non accentuées et les chiffres sont autorisés !")
            End If
        End Sub
    
    
        Private Sub TextConfirm_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextConfirm.KeyPress
            Dim Erreur As Boolean
            ' On n'accepte que les lettres de l'alphabet et les chiffres
            Erreur = False
            If e.KeyChar < ChrW(48) Or e.KeyChar > ChrW(122) Then Erreur = True
            If e.KeyChar > ChrW(57) And e.KeyChar < ChrW(65) Then Erreur = True
            If e.KeyChar > ChrW(90) And e.KeyChar < ChrW(97) Then Erreur = True
            'On autorise les touches Suppr, Retour arrière et Entrée
            If e.KeyChar = ChrW(46) Or e.KeyChar = ChrW(8) Or e.KeyChar = ChrW(13) Then Erreur = False
    
            If Erreur Then
                e.Handled = True
                MsgBox("Seules les lettres de l'alphabet non accentuées et les chiffres sont autorisés !")
            End If
        End Sub
        ' *************** FIN DU CONTROLE DES CARACTERES INTERDITS DU CLAVIER ***************
    
    
    End Class

  13. #10
    bamboutchatunisiano

    Re : problème dans mon mini projet développé en visual basic express 2010

    Merci beaucoup de votre aide juste j'ai un autre petit problème je ne sais pas comment effacer une ligne d'un fichier et comment modifier le continue de fichier.
    merci cordinallement

Discussions similaires

  1. Problème visual basic
    Par jujupdu85 dans le forum Programmation et langages, Algorithmique
    Réponses: 3
    Dernier message: 12/12/2010, 11h50
  2. Projet Visual basic (à l'aideeeeeee)
    Par Pierre19 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 27/11/2009, 15h57
  3. Problème Visual Basic 6
    Par Neji dans le forum Internet - Réseau - Sécurité générale
    Réponses: 1
    Dernier message: 11/10/2008, 17h51
  4. Problème visual Basic excel
    Par ketchupi dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 14/02/2008, 14h12
  5. Problème avec visual basic
    Par KHEOPS1982 dans le forum Logiciel - Software - Open Source
    Réponses: 5
    Dernier message: 14/08/2004, 00h11