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

VB.NET Discussion :

Problème vb utilisateurs


Sujet :

VB.NET

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 3
    Par défaut Problème vb utilisateurs
    Bonjour,

    J'ai un petit problème avec un script qui affiche les logins et mot de passe dans une invite de commande par rapport à des noms et prénoms dans un fichier texte.

    Voici le code :

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    Imports FonctionsVB
    Module Module1
     
        Structure S_Utilisateur
            Dim Login As String
            Dim MP As String
            Dim Nom As String
            Dim Prenom As String
        End Structure
     
        'Sub Main()
        'MonUtilisateur As S_Utilisateur
        'MonUtilisateur = CreStructureUtilisateur("toto", "titi")
        'AfficheUtilisateur(MonUtilisateur)
        'Console.ReadLine()
        ' End Sub
     
        'Sub Main()
        'Dim l_Nbutil As Integer
        ' Dim Monutil As S_Utilisateur
        'Dim i As Integer
        'Dim Montableau() As S_Utilisateur
        ' Montableau = CreTabUtilisateur("C:\Users\Kévin\Documents\VisualBasic\TPprocedure\mdp.txt", l_Nbutil)
        ' For i = 0 To l_Nbutil - 1
        'Monutil = Montableau(i)
        'AfficheUtilisateur(Monutil)
        ' Next
        'End Sub
     
     
        Sub Main()
            Dim pNbUtil As Integer
            Dim MonTableau() As S_Utilisateur               'déclaration d'un tableau de type s_utilisateur
            Dim i As Integer                                'déclaration d'une variable de type entier
     
            MonTableau = CreTabUtilisateur("C:\Users\Kévin\Documents\VisualBasic\TPprocedure\test.txt", pNbUtil)
            'le tableau reçoit le chemin du fichier en entrée et le NB d'utilisateur en sortie
     
     
            For i = 0 To TailleTableau(MonTableau) - 1
                AfficheUtilisateur(MonTableau(i))
            Next
            'pour i de 0 à la taille du tableau, on appelle la procédure  affiche utilisateur pour afficher nom, login, mdp
     
            Console.ReadLine()
     
        End Sub
     
     
        ' Procédure affichant le login, le nom et le prénom de l'utilisateur dans la console
        Sub AfficheUtilisateur(ByVal pUtil As S_Utilisateur)
            Console.WriteLine(" Prénom : " & pUtil.Prenom)
            Console.WriteLine(" Nom : " & pUtil.Nom)
            Console.WriteLine(" Login : " & pUtil.Login)
            Console.WriteLine(" Mot de passe : " & pUtil.MP)
        End Sub
     
        'Function CreTabUtilisateur(ByVal PcheminFichier As String) As S_Utilisateur
        'Dim MonFichier As Fichier
        'Dim I As Integer
        'I = 0
        'Dim TabUtil(999) As S_Utilisateur
        'While FinFichier(MonFichier) = False
        'Dim Maligne As String
        'Maligne = LireLigne(MonFichier)
        'Dim Montableau() As String
        'Montableau = DecoupeChaine(Maligne, ";")
        'Dim MonUtilisateur As S_Utilisateur
        'MonUtilisateur = CreStructureUtilisateur(Montableau(0), Montableau(1))
        'TabUtil(I) = MonUtilisateur
        'I = I + 1
        'End While
        'FermerFichier(MonFichier)
        'Return TabUtil
        'End Function
     
        Function CreTabUtilisateur(ByVal PcheminFichier As String, ByRef pNbUtil As Integer) As S_Utilisateur() ' Passage en paramètre de Pcheminfichier en entrée et pNbUtil en sortie
     
            Dim l_fichier As Fichier ' Déclaration de l_fichier en tant que Fichier
            l_fichier = OuvrirFichier(PcheminFichier, "l") ' Ouverture du fichier en lecture
            Dim tableutil(999) As S_Utilisateur ' Déclaration du tableau ( - de 1000 lignes ) comme type S_utilisateur
     
     
            Dim i As Integer ' Déclaration de i en tant qu'entier
            i = 0  ' Initialisation de i à 0
            pNbUtil = i
            Dim l_Ligne As String    ' Déclaration de l_ligne en tant que String
            Dim Montableau() As String ' Déclaration du tableau
            Dim MonUtilisateur As S_Utilisateur 'Déclaration de MonUtilisate
     
     
            While FinFichier(l_fichier) = False ' Boucle tant que pour la lecture du fichier
     
     
                l_Ligne = LireLigne(l_fichier) ' Lecture de la ligne avec la fonction lireligne
                Montableau = DecoupeChaine(l_Ligne, ";") ' Découpage des lignes avec comme séparation le ; et ajout dans MonTableau
                MonUtilisateur = CreStructureUtilisateur(Montableau(0), Montableau(1)) ' Appel à la fonction CreStrucureUtilisateur qui constiture le login et le mot de passe à partir du nom et prénom dans le fichier texte
                tableutil(i) = MonUtilisateur ' Ajout de la variable MonUtilisateur dans tableutil
                i = i + 1
            End While
            FermerFichier(l_fichier) ' Fermeture du fichier grace à la fonction FermerFichier
            Return tableutil ' On retourne la valeur tableutil
        End Function
     
        Public Function CreStructureUtilisateur(ByVal pNom As String, ByVal pPrenom As String) As S_Utilisateur
     
     
            Dim l_Utilisateur As S_Utilisateur ' Déclaration de l_Utilisateur comme type S_Utilisateur
     
     
            l_Utilisateur.Nom = pNom ' Dans la variable l_Utilisateur nous appelons la variable Nom présent dans S_utilisateur
            l_Utilisateur.Prenom = pPrenom ' Dans la variable l_Utilisateur nous appelons la variable Prénom présent dans S_utilisateur
            l_Utilisateur.Login = SousChaine(pPrenom, 0, 1) & pNom
            l_Utilisateur.MP = SousChaine(pNom, 0, 2) & SousChaine(pPrenom, 0, 2)
            Return l_Utilisateur
        End Function
    End Module
    Mon problème est que dans l'invite de commande il m'afiche les 999 lignes.
    Si je modifie tableutil(999) par tableutil(3), il m'affiche bien les utilisateurs.

    Merci de votre aide.

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Par défaut
    Bonjour,

    peux-tu être plus clair ?
    Là je ne vois pas ton problème, tu dis que quand tu met 999 il t'affiche les 999 utilisateurs et quand tu met 3 il t'affiche quoi ?
    les 3 utilisateurs ?

    D'où sort ton "TailleTableau" ?

  3. #3
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Par défaut
    Moi je ne vois pas où est le souci, tu lui demandes de t'afficher les utilisateurs et il le fait donc point de problème à l'horizon...

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 3
    Par défaut
    En faite dans mon fichier texte j'ai mis trois utilisateurs.
    Le tableutil set qu'un tableau ne doit pas faire plus de 1000 lignes.

    Normalement il devrait m'afficher les 3 utilisateurs dans mon fichiers texte.

    TailleTableau sort d'ici :


    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    Imports System.Collections.Generic
    Imports System.Management
     
    Public Module OutilsVB
        Public Structure Fichier
            Dim CheminFichier As String
            Dim FluxLecture As System.IO.StreamReader
            Dim FluxEcriture As System.IO.StreamWriter
            Dim IdFichier As Integer
            Dim TypeOuverture As String
        End Structure
     
        Public Function OuvrirFichier(ByVal pCheminFichier As String, ByVal pTypeOuverture As String) As Fichier
            Try
                Dim l_Fichier As Fichier
                l_Fichier.CheminFichier = pCheminFichier
                l_Fichier.TypeOuverture = pTypeOuverture
                If pTypeOuverture = "l" Or pTypeOuverture = "L" Then
                    l_Fichier.FluxLecture = IO.File.OpenText(pCheminFichier)
                Else
                    If pTypeOuverture = "e" Or pTypeOuverture = "E" Then
                        l_Fichier.FluxEcriture = New IO.StreamWriter(pCheminFichier)
                    Else
                        Throw New Exception("Le type d'ouverture n'est pas correct : L pour lecture, E pour écriture")
                    End If
                End If
                Return l_Fichier
            Catch ex As Exception
                Throw New Exception(ex.Message)
            End Try
        End Function
     
        Private Function VerifStructFichier(ByVal pFichier As Fichier) As Boolean
            Try
                If pFichier.FluxLecture Is Nothing And pFichier.FluxEcriture Is Nothing Then
                    Throw New Exception("Le flux correspondant n'est pas correct")
                Else
                    Return True
                End If
            Catch ex As Exception
                Throw New Exception("La structure Fichier n'est pas correcte")
            End Try
     
        End Function
     
        Private Function VerifTypeLecture(ByVal pFichier As Fichier) As Boolean
            If pFichier.TypeOuverture = "l" Or pFichier.TypeOuverture = "L" Then
                Return True
            Else
                Throw New Exception("Le fichier n'a pas été ouvert en lecture")
            End If
        End Function
     
        Private Function VerifTypeEcriture(ByVal pFichier As Fichier) As Boolean
            If pFichier.TypeOuverture = "e" Or pFichier.TypeOuverture = "E" Then
                Return True
            Else
                Throw New Exception("Le fichier n'a pas été ouvert en écriture")
            End If
        End Function
     
        Public Function LireLigne(ByVal pFichier As Fichier) As String
            If VerifTypeLecture(pFichier) Then
                If VerifStructFichier(pFichier) Then
                    Dim l_Chaine As String = pFichier.FluxLecture.ReadLine()
                    Return l_Chaine
                Else
                    Return Nothing
                End If
            End If
        End Function
     
        Public Function FinFichier(ByVal pFichier As Fichier) As Boolean
            If VerifTypeLecture(pFichier) Then
                If VerifStructFichier(pFichier) Then
                    Return pFichier.FluxLecture.EndOfStream
                End If
            End If
        End Function
     
        Public Sub EcrireLigne(ByVal pFichier As Fichier, ByVal pLigne As String)
            If VerifTypeEcriture(pFichier) Then
                If VerifStructFichier(pFichier) Then
                    pFichier.FluxEcriture.WriteLine(pLigne)
                    pFichier.FluxEcriture.Flush()
                End If
            End If
        End Sub
     
        Public Sub FermerFichier(ByRef pFichier As Fichier)
            Try
                If VerifStructFichier(pFichier) Then
                    If Not pFichier.FluxEcriture Is Nothing Then
                        pFichier.FluxEcriture.Close()
                    End If
                    If Not pFichier.FluxLecture Is Nothing Then
                        pFichier.FluxLecture.Close()
                    End If
                End If
            Finally
                pFichier = Nothing
                GC.Collect()
            End Try
     
        End Sub
        Public Function SousChaine(ByVal pChaine As String, ByVal pIndiceDepart As Integer, ByVal pLongueur As Integer) As String
            Return pChaine.Substring(pIndiceDepart, pLongueur)
        End Function
     
        Public Function DecoupeChaine(ByVal pChaine As String, ByVal pCarSeparation As String) As String()
            Return pChaine.Split(pCarSeparation)
        End Function
     
        Public Function TailleTableau(ByVal pTableau As Array) As Integer
            Return pTableau.Length
        End Function
    End Module
    Merci

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 3
    Par défaut
    En faite le problème se site au niveau de pNbutil qui n'est pas passé en paramètres :

    Je vous met le code :


    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    Imports FonctionsVB
    Module Module1
     
        Structure S_Utilisateur
            Dim Login As String
            Dim MP As String
            Dim Nom As String
            Dim Prenom As String
        End Structure
     
        'Sub Main()
        'MonUtilisateur As S_Utilisateur
        'MonUtilisateur = CreStructureUtilisateur("toto", "titi")
        'AfficheUtilisateur(MonUtilisateur)
        'Console.ReadLine()
        ' End Sub
     
        'Sub Main()
        'Dim l_Nbutil As Integer
        ' Dim Monutil As S_Utilisateur
        'Dim i As Integer
        'Dim Montableau() As S_Utilisateur
        ' Montableau = CreTabUtilisateur("C:\Users\Kévin\Documents\VisualBasic\TPprocedure\mdp.txt", l_Nbutil)
        ' For i = 0 To l_Nbutil - 1
        'Monutil = Montableau(i)
        'AfficheUtilisateur(Monutil)
        ' Next
        'End Sub
     
     
        Sub Main()
     
            Dim MonTableau() As S_Utilisateur               'déclaration d'un tableau de type s_utilisateur
            Dim i As Integer
            Dim l_nbutil As Integer
            'déclaration d'une variable de type entier
            MonTableau = CreTabUtilisateur("C:\Users\Kévin\Documents\VisualBasic\TPprocedure\test.txt", l_nbutil)
            'le tableau reçoit le chemin du fichier en entrée et le NB d'utilisateur en sortie
     
     
            For i = 0 To 3 - 1
                AfficheUtilisateur(MonTableau(i))
            Next
     
            'pour i de 0 à la taille du tableau, on appelle la procédure  affiche utilisateur pour afficher nom, login, mdp
     
            Console.ReadLine()
     
        End Sub
     
     
        ' Procédure affichant le login, le nom et le prénom de l'utilisateur dans la console
        Sub AfficheUtilisateur(ByVal pUtil As S_Utilisateur)
            Console.WriteLine(" Prénom : " & pUtil.Prenom)
            Console.WriteLine(" Nom : " & pUtil.Nom)
            Console.WriteLine(" Login : " & pUtil.Login)
            Console.WriteLine(" Mot de passe : " & pUtil.MP)
        End Sub
     
        'Function CreTabUtilisateur(ByVal PcheminFichier As String) As S_Utilisateur
        'Dim MonFichier As Fichier
        'Dim I As Integer
        'I = 0
        'Dim TabUtil(999) As S_Utilisateur
        'While FinFichier(MonFichier) = False
        'Dim Maligne As String
        'Maligne = LireLigne(MonFichier)
        'Dim Montableau() As String
        'Montableau = DecoupeChaine(Maligne, ";")
        'Dim MonUtilisateur As S_Utilisateur
        'MonUtilisateur = CreStructureUtilisateur(Montableau(0), Montableau(1))
        'TabUtil(I) = MonUtilisateur
        'I = I + 1
        'End While
        'FermerFichier(MonFichier)
        'Return TabUtil
        'End Function
     
        Function CreTabUtilisateur(ByVal PcheminFichier As String, ByRef pNbutil As Integer) As S_Utilisateur() ' Passage en paramètre de Pcheminfichier en entrée et pNbUtil en sortie
     
            Dim l_fichier As Fichier ' Déclaration de l_fichier en tant que Fichier
            l_fichier = OuvrirFichier(PcheminFichier, "l") ' Ouverture du fichier en lecture
            Dim tableutil(999) As S_Utilisateur ' Déclaration du tableau ( - de 1000 lignes ) comme type S_utilisateur
     
            Dim l_Ligne As String    ' Déclaration de l_ligne en tant que String
            Dim Montableau() As String ' Déclaration du tableau
            Dim MonUtilisateur As S_Utilisateur 'Déclaration de MonUtilisate
            Dim i As Integer
            i = 0
            pNbutil = i
     
            While FinFichier(l_fichier) = False ' Boucle tant que pour la lecture du fichier
     
                l_Ligne = LireLigne(l_fichier) ' Lecture de la ligne avec la fonction lireligne
                Montableau = DecoupeChaine(l_Ligne, ";") ' Découpage des lignes avec comme séparation le ; et ajout dans MonTableau
                MonUtilisateur = CreStructureUtilisateur(Montableau(0), Montableau(1)) ' Appel à la fonction CreStrucureUtilisateur qui constiture le login et le mot de passe à partir du nom et prénom dans le fichier texte
                tableutil(i) = MonUtilisateur ' Ajout de la variable MonUtilisateur dans tableutil
                i = i + 1
            End While
            FermerFichier(l_fichier) ' Fermeture du fichier grace à la fonction FermerFichier
            Return tableutil ' On retourne la valeur tableutil
        End Function
     
        Public Function CreStructureUtilisateur(ByVal pNom As String, ByVal pPrenom As String) As S_Utilisateur
     
     
            Dim l_Utilisateur As S_Utilisateur ' Déclaration de l_Utilisateur comme type S_Utilisateur
     
     
            l_Utilisateur.Nom = pNom ' Dans la variable l_Utilisateur nous appelons la variable Nom présent dans S_utilisateur
            l_Utilisateur.Prenom = pPrenom ' Dans la variable l_Utilisateur nous appelons la variable Prénom présent dans S_utilisateur
            l_Utilisateur.Login = SousChaine(pPrenom, 0, 1) & pNom
            l_Utilisateur.MP = SousChaine(pNom, 0, 2) & SousChaine(pPrenom, 0, 2)
            Return l_Utilisateur
        End Function
    End Module
    Merci beaucoup de votre aide.

Discussions similaires

  1. probléme d'utilisateur sur oracle
    Par wael.dz dans le forum Oracle
    Réponses: 1
    Dernier message: 21/07/2007, 10h01
  2. [EasyPHP] Problème d'utilisateur
    Par mathieugamin dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 31/01/2007, 11h22
  3. Problème avec utilisateurs
    Par nicaud dans le forum Oracle
    Réponses: 7
    Dernier message: 07/06/2006, 14h52
  4. Problème authentification utilisateurs.
    Par Mevil dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 02/06/2006, 09h04
  5. [FreeBSD] Problème d'utilisateur
    Par Gnux dans le forum BSD
    Réponses: 2
    Dernier message: 12/04/2006, 15h54

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