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 :

Instruction If Not existe [Débutant]


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur avant-vente
    Inscrit en
    Janvier 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur avant-vente
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2012
    Messages : 28
    Points : 29
    Points
    29
    Par défaut Instruction If Not existe
    Bonjour,

    dans la cadre d'un cours par correspondance, il est indiqué le développement ci-dessous :
    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
     
    Module Répertoire
     
        Sub Main()
            Dim Nom, Prénom, Tel
            Nom = "Drollet"
            Prénom = "Patrice"
            Tel = "0321512998"
     
            ajoute(Nom, Prénom, Tel)
     
     
        End Sub
     
     
        Sub ajoute(ByVal Nom As String, ByVal Prénom As String, ByVal Tel As String)
            If Not existe(Nom, Prénom) Then
                Dim FichierRepertoire = FreeFile()
                FileOpen(FichierRepertoire, "C:\Repertoire.txt", OpenMode.Append)
                WriteLine(FichierRepertoire, Nom, Prénom, Tel)
                FileClose(FichierRepertoire)
            End If
        End Sub
     
    End Module
    Le code erreur de l'instruction If Not Existe indique ceci :

    Erreur 1 Le nom 'existe' n'est pas déclaré. C:\Users\drollet-p\Documents\Visual Studio 2008\Projects\Séquence 5\Séquence 5\Répertoire.vb 16 16 Séquence 5

    Est-ce une erreur au niveau de cette instruction?

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,


    Citation Envoyé par PATDRO Voir le message
    Bonjour,


    Est-ce une erreur au niveau de cette instruction?
    Réponse brève : OUI

    Pas terrible comme enseignant.

    Essaie avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not exists(Nom, Prénom) Then
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Bonsoir,

    @Clementmarcotte : absolument pas d'accord avec toi....désolé, je ne comprends pas à quoi tu fais référence avec "exists()" o_O !!

    @PATDRO :

    Ce que ton prof voulais te faire prendre conscience c'est qu'avant de vouloir écrire dans un fichier séquentiel on vérifie que l'entrée n'est pas déjà présente !
    Et pour ce faire il t'invite à réfléchir afin de mettre en place une fonction "existe" avec 2 arguments et une valeur de retour de type booléen qui indique si le nom et le prénom existe déjà dans le fichier :

    Voilà à quoi ça pourrait ressembler :

    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
     
    Module Répertoire
     
        Sub Main()
            Dim Nom, Prénom, Tel
            Nom = "Drollet"
            Prénom = "Patrice"
            Tel = "0321512998"
     
            ajoute(Nom, Prénom, Tel)
     
        End Sub
     
     
        Sub ajoute(ByVal Nom As String, ByVal Prénom As String, ByVal Tel As String)
            If Not existe(Nom, Prénom) Then
                Dim FichierRepertoire = FreeFile()
                FileOpen(FichierRepertoire, "C:\Repertoire.txt", OpenMode.Append)
                WriteLine(FichierRepertoire, Nom, Prénom, Tel)
                FileClose(FichierRepertoire)
            Else
                MsgBox("Le nom existe déjà dans le fichier !!")
            End If
        End Sub
     
        Function existe(ByVal Nom As String, ByVal Prénom As String) As Boolean
            Dim FichierRepertoire = FreeFile()
            FileOpen(FichierRepertoire, "C:\Repertoire.txt", OpenMode.Input)
            Dim value = String.Empty
            Dim found As Boolean
     
            While Not EOF(FichierRepertoire)
                If LineInput(FichierRepertoire).StartsWith(Chr(34) & Nom & Chr(34) & "," & Chr(34) & Prénom & Chr(34)) Then
                    found = True
                    Exit While
                End If
            End While
     
            FileClose(FichierRepertoire)
     
            Return found
        End Function
     
    End Module
    Perso je suis très attaché aux classes StreamReader et Streamwriter pour travailler avec les fichiers mais il existe bien sur de multiples façons de procéder.

    A+

  4. #4
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par wallace1 Voir le message
    Bonsoir,

    @Clementmarcotte : absolument pas d'accord avec toi....désolé, je ne comprends pas à quoi tu fais référence avec "exists()" o_O !!

    A+
    Mea culpa, mea maxima culpa.

    Pour paraphraser La Sagouine (une Acadienne pure-laine) : je n'avions pas vérifié s'il y avions une fonction Existe()
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur avant-vente
    Inscrit en
    Janvier 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur avant-vente
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2012
    Messages : 28
    Points : 29
    Points
    29
    Par défaut Fonction Existe
    Citation Envoyé par wallace1 Voir le message
    Bonsoir,

    @Clementmarcotte : absolument pas d'accord avec toi....désolé, je ne comprends pas à quoi tu fais référence avec "exists()" o_O !!

    @PATDRO :

    Ce que ton prof voulais te faire prendre conscience c'est qu'avant de vouloir écrire dans un fichier séquentiel on vérifie que l'entrée n'est pas déjà présente !
    Et pour ce faire il t'invite à réfléchir afin de mettre en place une fonction "existe" avec 2 arguments et une valeur de retour de type booléen qui indique si le nom et le prénom existe déjà dans le fichier :

    Voilà à quoi ça pourrait ressembler :

    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
     
    Module Répertoire
     
        Sub Main()
            Dim Nom, Prénom, Tel
            Nom = "Drollet"
            Prénom = "Patrice"
            Tel = "0321512998"
     
            ajoute(Nom, Prénom, Tel)
     
        End Sub
     
     
        Sub ajoute(ByVal Nom As String, ByVal Prénom As String, ByVal Tel As String)
            If Not existe(Nom, Prénom) Then
                Dim FichierRepertoire = FreeFile()
                FileOpen(FichierRepertoire, "C:\Repertoire.txt", OpenMode.Append)
                WriteLine(FichierRepertoire, Nom, Prénom, Tel)
                FileClose(FichierRepertoire)
            Else
                MsgBox("Le nom existe déjà dans le fichier !!")
            End If
        End Sub
     
        Function existe(ByVal Nom As String, ByVal Prénom As String) As Boolean
            Dim FichierRepertoire = FreeFile()
            FileOpen(FichierRepertoire, "C:\Repertoire.txt", OpenMode.Input)
            Dim value = String.Empty
            Dim found As Boolean
     
            While Not EOF(FichierRepertoire)
                If LineInput(FichierRepertoire).StartsWith(Chr(34) & Nom & Chr(34) & "," & Chr(34) & Prénom & Chr(34)) Then
                    found = True
                    Exit While
                End If
            End While
     
            FileClose(FichierRepertoire)
     
            Return found
        End Function
     
    End Module
    Perso je suis très attaché aux classes StreamReader et Streamwriter pour travailler avec les fichiers mais il existe bien sur de multiples façons de procéder.

    A+
    Merci de votre retour

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

Discussions similaires

  1. PROBLEME AVEC LES REQUETES IS NULL / NOT EXISTS
    Par sylvaine dans le forum Langage SQL
    Réponses: 5
    Dernier message: 04/06/2004, 13h26
  2. [DB2] create table... if not exists ?
    Par iubito dans le forum DB2
    Réponses: 6
    Dernier message: 23/03/2004, 18h26
  3. FATAL 1: Database "x" does not exist in the syste
    Par barbituric dans le forum PostgreSQL
    Réponses: 11
    Dernier message: 17/03/2004, 06h35
  4. Requète avec NOT EXISTS
    Par missllyss dans le forum SQL
    Réponses: 2
    Dernier message: 23/09/2003, 15h20
  5. [JCreator] "package tools does not exists"
    Par snyper147 dans le forum Environnement de Développement Intégré (EDI)
    Réponses: 2
    Dernier message: 04/05/2003, 20h08

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