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 :

Exécuter un code avec une condition


Sujet :

VB.NET

  1. #1
    Membre du Club
    Homme Profil pro
    Amateur vb.net
    Inscrit en
    Avril 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Amateur vb.net
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 99
    Points : 60
    Points
    60
    Par défaut Exécuter un code avec une condition
    Bonjour,
    voici mon 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
    Dim fileattaque = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\argent.txt")
            Dim lineattaque As String = ""
            Try
                'Lecture de la premiere ligne du fichier
                Dim srattaque As New System.IO.StreamReader(fileattaque)
                lineattaque = srattaque.ReadLine
                srattaque.Close()
                Kill(fileattaque)
                If IsNumeric(lineattaque.Trim) AndAlso Integer.Parse(lineattaque.Trim) Then
                    lineattaque = (Integer.Parse(lineattaque.Trim) - ajoutdéfense).ToString
                End If
                'Reecriture du fichier
                Dim swattaque As New System.IO.StreamWriter(fileattaque)
                swattaque.WriteLine(lineattaque)
                swattaque.Close()
            Catch ex As Exception
                MsgBox("Une erreur est survenue, veuillez réessayer l'action souhaitée. Si le problème persiste, veuillez informer OdekProduction")
            End Try
    Mon application est un magasin. Le système que j'aimerais faire est que si l'argent possédé (il se trouve dans un fichier.txt) est inférieur au prix de l'article, il ne peut pas l'acheter (et inversement).
    Voici le code de toute mon application:

    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
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    Public Class Form1
        Dim destination As String
        Dim selection As String
        Dim ajoutattaque As String
        Dim ajoutdéfense As String
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
        End Sub
     
        Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
            selection = ListBox1.SelectedItem
            'Pour le beug d'affichage
            If selection = Nothing Then
                destination = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\nothing.txt")
            End If
            'Le fichier à lire pour tous les objets
            If selection = ("Collier d'ours") Then
                destination = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\objet\collierdours.txt")
            End If
            If selection = ("Cape du mage Tanzou") Then
                destination = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\objet\cape du mage tanzou.txt")
            End If
            If selection = ("Capuchon du mage Tanzou") Then
                destination = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\objet\capuchon du mage tanzou.txt")
            End If
            If selection = ("Batte de tanball du mage Tanzou") Then
                destination = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\objet\batte de tanball du mage tanzou.txt")
            End If
            If selection = ("Cuirasse du mage Tanzou") Then
                destination = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\objet\cuirasse du mage tanzou.txt")
            End If
            If selection = ("Chapeau parasol") Then
                destination = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\objet\chapeau parasol.txt")
            End If
            If selection = ("Cape de l'aventurier") Then
                destination = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\objet\cape de l'aventurier.txt")
            End If
            If selection = ("Cuirasse en cuir de cochon") Then
                destination = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\objet\cuirasse en cuir de cochon.txt")
            End If
            If selection = ("Cuirasse en cuir de sanglier") Then
                destination = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\objet\cuirasse en cuir de sanglier.txt")
            End If
            If selection = ("Heaume du chevalier") Then
                destination = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\objet\heaume du chevalier.txt")
            End If
            If selection = ("Bouclier d'Irthanne") Then
                destination = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\objet\bouclier d'irthanne.txt")
            End If
            If selection = ("Troublon de nain") Then
                destination = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\objet\troublon de nain.txt")
            End If
            If selection = ("Epée d'aventurier") Then
                destination = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\objet\épée d'aventurier.txt")
            End If
            If selection = ("Arc Sylvain") Then
                destination = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\objet\arc sylvain.txt")
            End If
            If selection = ("Cuirasse de Kaslocks") Then
                destination = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\objet\cuirasse de kaslocks.txt")
            End If
            If selection = ("Chapeau de l'aventurier") Then
                destination = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\objet\chapeau de l'aventurier.txt")
            End If
            If selection = ("Bonnet de laine blindé") Then
                destination = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\objet\bonnet de laine blindé.txt")
            End If
            'Le système de lecture des fichiers (c'est la racine du code). NE SURTOUT PAS TOUCHER
            Dim stream As New System.IO.StreamReader(destination, _
            System.Text.Encoding.Default, False, 512)
            Dim description = stream.ReadLine
            Label1.Text = description
            Dim effet = stream.ReadLine
            Label2.Text = effet
            Dim prix = stream.ReadLine
            Label3.Text = prix
            Dim emplacement = stream.ReadLine
            Label4.Text = emplacement
            stream.Close()
            'FIN DE L'INTERDICTION DE TOUCHER
     
        End Sub
     
        Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
     
        End Sub
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Return
        End Sub
     
        Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
            Dim argent As New System.IO.StreamReader(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\stats\argent.txt")
            Dim money = argent.ReadLine
            argent.Close()
            'Ajout des effets au personnage.
            If selection = ("Collier d'ours") Then
                destination = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\objet\collierdours.txt")
            End If
            If selection = ("Cape du mage Tanzou") Then
     
            End If
            If selection = ("Capuchon du mage Tanzou") Then
                destination = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\objet\capuchon du mage tanzou.txt")
            End If
            If selection = ("Batte de tanball du mage Tanzou") Then
                destination = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\objet\batte de tanball du mage tanzou.txt")
            End If
            If selection = ("Cuirasse du mage Tanzou") Then
                destination = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\objet\cuirasse du mage tanzou.txt")
            End If
            If selection = ("Chapeau parasol") Then
                destination = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\objet\chapeau parasol.txt")
            End If
            If selection = ("Cape de l'aventurier") Then
                destination = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\objet\cape de l'aventurier.txt")
            End If
            If selection = ("Cuirasse en cuir de cochon") Then
                destination = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\objet\cuirasse en cuir de cochon.txt")
            End If
            If selection = ("Cuirasse en cuir de sanglier") Then
                destination = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\objet\cuirasse en cuir de sanglier.txt")
            End If
            If selection = ("Heaume du chevalier") Then
                destination = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\objet\heaume du chevalier.txt")
            End If
            If selection = ("Bouclier d'Irthanne") Then
                destination = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\objet\bouclier d'irthanne.txt")
            End If
            If selection = ("Troublon de nain") Then
                destination = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\objet\troublon de nain.txt")
            End If
            If selection = ("Epée d'aventurier") Then
                destination = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\objet\épée d'aventurier.txt")
            End If
            If selection = ("Arc Sylvain") Then
                destination = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\objet\arc sylvain.txt")
            End If
            If selection = ("Cuirasse de Kaslocks") Then
                destination = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\objet\cuirasse de kaslocks.txt")
            End If
            If selection = ("Chapeau de l'aventurier") Then
                destination = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\objet\chapeau de l'aventurier.txt")
            End If
            If selection = ("Bonnet de laine blindé") Then
                If money >= Label3.Text Then
                    ajoutattaque = (+0)
                    ajoutdéfense = (+30)
                End If
            End If
            'Déclaration des variables de changement des effets.
            'Déclaration pour la défense.
            Dim filedéfense = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defense.txt")
            Dim linedéfense As String = ""
            Try
                'Lecture de la premiere ligne du fichier
                Dim srdéfense As New System.IO.StreamReader(filedéfense)
                linedéfense = srdéfense.ReadLine
                srdéfense.Close()
                Kill(filedéfense)
                If IsNumeric(linedéfense.Trim) AndAlso Integer.Parse(linedéfense.Trim) Then
                    linedéfense = (Integer.Parse(linedéfense.Trim) + ajoutdéfense).ToString
                End If
                'Reecriture du fichier
                Dim swdéfense As New System.IO.StreamWriter(filedéfense)
                swdéfense.WriteLine(linedéfense)
                swdéfense.Close()
            Catch ex As Exception
                MsgBox("Une erreur est survenue, veuillez réessayer l'action souhaitée. Si le problème persiste, veuillez informer OdekProduction")
            End Try
            'Déclaration pour l'attaque.
            Dim fileattaque = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaque.txt")
            Dim lineattaque As String = ""
            Try
                'Lecture de la premiere ligne du fichier
                Dim srattaque As New System.IO.StreamReader(fileattaque)
                lineattaque = srattaque.ReadLine
                srattaque.Close()
                Kill(fileattaque)
                If IsNumeric(lineattaque.Trim) AndAlso Integer.Parse(lineattaque.Trim) Then
                    lineattaque = (Integer.Parse(lineattaque.Trim) + ajoutattaque).ToString
                End If
                'Reecriture du fichier
                Dim swattaque As New System.IO.StreamWriter(fileattaque)
                swattaque.WriteLine(lineattaque)
                swattaque.Close()
            Catch ex As Exception
                MsgBox("Une erreur est survenue, veuillez réessayer l'action souhaitée. Si le problème persiste, veuillez informer OdekProduction")
            End Try
     
        End Sub
    J'aimerais faire en sorte qu'à:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If selection = ("Bonnet de laine blindé") Then
                If money >= Label3.Text Then
                    ajoutattaque = (+0)
                    ajoutdéfense = (+30)
                End If
            End If
    Si l'utilisateur a assez d'argent, mon premier code est exécuté sinon rien ne se passe.
    Je pourrais répéter le code pour chaque article mais ça serait vraiment pas pratique, y a t-il un moyen de faire ce que je veux?

    Cordialement.

  2. #2
    Membre confirmé Avatar de hugoclo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 615
    Points : 480
    Points
    480
    Par défaut
    Moi je ferais une petite Function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    private function assez_argent( byval ajou_att as integer, byval ajou_def as integer)
                If money >= Label3.Text Then
                    ajoutattaque = ajou_att
                    ajoutdéfense = ajou_def
    else
    Msgbox("vous n'avez pas assez d'argent pour vous achetez cet article")
                End If
         end function
    et pout l'utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     If selection = ("Bonnet de laine blindé") Then
                destination = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\objet\bonnet de laine blindé.txt")
    assez_argent(0,30)
            End If
    N'oubli pas de rajouter dans la fonction une ligne pour deduire l'argent.
    Lorsque le sage montre la lune du doigt l'idiot regarde le doigt.

  3. #3
    Membre du Club
    Homme Profil pro
    Amateur vb.net
    Inscrit en
    Avril 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Amateur vb.net
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 99
    Points : 60
    Points
    60
    Par défaut
    D'accord merci pour ton aide.

  4. #4
    Membre confirmé Avatar de hugoclo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 615
    Points : 480
    Points
    480
    Par défaut
    Si l'utilisateur a assez d'argent, mon premier code est exécuté sinon rien ne se passe.
    Qu'appel tu ton premier code
    Lorsque le sage montre la lune du doigt l'idiot regarde le doigt.

  5. #5
    Membre éclairé Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Points : 801
    Points
    801
    Par défaut
    Salut,

    Citation Envoyé par herroP Voir le message
    Je pourrais répéter le code pour chaque article mais ça serait vraiment pas pratique, y a t-il un moyen de faire ce que je veux?
    Tu pourrais essayer d'utiliser des classes Article et Personne. Exemple:

    Création de 2 classes "Article" et "Personne" qui contiendront les données
    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
    Class Article
     
        Public Property Nom As String
        Public Property Description As String
        Public Property Prix As Double
        Public Property Effet As String
        Public Property BonusAttaque As Integer
        Public Property BonusDefense As Integer
     
    End Class
     
    Class Personne
     
        Public Property Nom As String
        Public Property Argent As Double
        Public Property Attaque As Double
        Public Property Defense As Double
        Public Property Articles As New List(Of Article)
     
    End Class
    Leurs utilisations:
    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
     
        Dim Articles As List(Of Article)
        Dim PersonneCourante As Personne
     
        Sub Main()
     
            Dim fichierspersonne As String = "jeanpaul.txt"
            Dim fichiersarticle As String() = {"collier.txt", "poutre.txt", "slip.txt"}
     
            'Chargement de l'utilisateur
            PersonneCourante = LoadPersonne(fichierspersonne)
            'Chargement des articles
            Articles = LoadArticles(fichiersarticle)
     
            'Sélection d'un article
            Dim ArticleCourant As Article = Articles(0)
     
            'Si l'argent de la personne est supérieur au prix de l'article
            If PersonneCourante.Argent > ArticleCourant.Prix Then
                'On ajoute l'article à ceux de la personne
                PersonneCourante.Articles.Add(ArticleCourant)
                PersonneCourante.Argent -= ArticleCourant.Prix
                PersonneCourante.Attaque += ArticleCourant.BonusAttaque
                PersonneCourante.Defense += ArticleCourant.BonusDefense
            End If
     
        End Sub
    Les méthodes de chargement des données
    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
     
        Private Function LoadPersonne(ByVal emplacement As String) As Personne
     
            Try
                Dim p As New Personne
     
                Using sr As New StreamReader(emplacement)
                    Dim txt As String = sr.ReadToEnd
                    Dim lignes As String() = txt.Split(vbCrLf)
     
                    p.Nom = lignes(0)
                    p.Argent = lignes(1)
                    p.Attaque = lignes(2)
                    p.Defense = lignes(3)
     
                End Using
     
                Return p
            Catch ex As Exception
                'Fichier introuvable
            End Try
     
            Return Nothing
        End Function
     
        Private Function LoadArticles(ByVal emplacements As String()) As List(Of Article)
     
            Dim articles As New List(Of Article)
     
            For Each emplacement As String In emplacements
                Dim a As Article = Nothing
                Try
                    Using sr As New StreamReader(emplacement)
                        Dim txt As String = sr.ReadToEnd
                        Dim lignes As String() = txt.Split(vbCrLf)
     
                        a.Nom = lignes(0)
                        a.Description = lignes(1)
                        a.Prix = lignes(2)
                        a.Effet = lignes(3)
                        a.BonusAttaque = lignes(4)
                        a.BonusDefense = lignes(5)
     
                        articles.Add(a)
                    End Using
                Catch ex As Exception
                    'Fichier introuvable
                End Try
     
            Next
     
            Return articles
        End Function
    Bon code.
    J’ai des questions à toutes vos réponses!

  6. #6
    Membre du Club
    Homme Profil pro
    Amateur vb.net
    Inscrit en
    Avril 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Amateur vb.net
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 99
    Points : 60
    Points
    60
    Par défaut
    Merci à tous pour votre aide, j'ai finalement fait ainsi:

    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
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
            Dim ajoutargent As String
            Dim argent As New System.IO.StreamReader(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\stats\argent.txt")
            Dim money = argent.ReadLine
            argent.Close()
            'Ajout des effets au personnage.
            'Le fichier à lire pour tous les objets
            If money >= Label3.Text Then
                If selection = ("Collier d'ours") Then
                    Dim ourstêteattaque As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaquetete.txt")
                    ourstêteattaque.WriteLine(5)
                    ourstêteattaque.Close()
                    Dim ourstêtedéfense As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defensetete.txt")
                    ourstêtedéfense.WriteLine(0)
                    ourstêtedéfense.Close()
                    ajoutargent = 50
                End If
                If selection = ("Cape du mage Tanzou") Then
                    Dim capetanzouattaque As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaquecape.txt")
                    capetanzouattaque.WriteLine(100)
                    capetanzouattaque.Close()
                    Dim capetanzoudéfense As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defensecape.txt")
                    capetanzoudéfense.WriteLine(0)
                    capetanzoudéfense.Close()
                    ajoutargent = 10000
                End If
                If selection = ("Capuchon du mage Tanzou") Then
                    Dim capuchontanzouattaque As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaquetete.txt")
                    capuchontanzouattaque.WriteLine(0)
                    capuchontanzouattaque.Close()
                    Dim capuchontanzoudéfense As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defensetete.txt")
                    capuchontanzoudéfense.WriteLine(100)
                    capuchontanzoudéfense.Close()
                    ajoutargent = 10000
                End If
                If selection = ("Batte de tanball du mage Tanzou") Then
                    Dim battetanzouattaque As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaquearme.txt")
                    battetanzouattaque.WriteLine(150)
                    battetanzouattaque.Close()
                    Dim battetanzoudéfense As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defensearme.txt")
                    battetanzoudéfense.WriteLine(0)
                    battetanzoudéfense.Close()
                    ajoutargent = 12500
                End If
                If selection = ("Cuirasse du mage Tanzou") Then
                    Dim cuirassetanzouattaque As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaquecuirasse.txt")
                    cuirassetanzouattaque.WriteLine(0)
                    cuirassetanzouattaque.Close()
                    Dim cuirassetanzoudéfense As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defensecuirasse.txt")
                    cuirassetanzoudéfense.WriteLine(150)
                    cuirassetanzoudéfense.Close()
                    ajoutargent = 12500
                End If
                If selection = ("Chapeau parasol") Then
                    Dim cparasolattaque As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaquetete.txt")
                    cparasolattaque.WriteLine(0)
                    cparasolattaque.Close()
                    Dim cparasoldéfense As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defensetete.txt")
                    cparasoldéfense.WriteLine(15)
                    cparasoldéfense.Close()
                    ajoutargent = 150
                End If
                If selection = ("Cape de l'aventurier") Then
                    Dim cape_de_laventurierattaque As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaquecape.txt")
                    cape_de_laventurierattaque.WriteLine(0)
                    cape_de_laventurierattaque.Close()
                    Dim cape_de_laventurierdéfense As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defensecape.txt")
                    cape_de_laventurierdéfense.WriteLine(10)
                    cape_de_laventurierdéfense.Close()
                    ajoutargent = 80
                End If
                If selection = ("Cuirasse en cuir de cochon") Then
                    Dim cuirassecochonattaque As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaquecuirasse.txt")
                    cuirassecochonattaque.WriteLine(0)
                    cuirassecochonattaque.Close()
                    Dim cuirassecochondéfense As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defensecuirasse.txt")
                    cuirassecochondéfense.WriteLine(5)
                    cuirassecochondéfense.Close()
                    ajoutargent = 50
                End If
                If selection = ("Cuirasse en cuir de sanglier") Then
                    Dim cuirassesanglierattaque As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaquecuirasse.txt")
                    cuirassesanglierattaque.WriteLine(0)
                    cuirassesanglierattaque.Close()
                    Dim cuirassesanglierdéfense As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defensecuirasse.txt")
                    cuirassesanglierdéfense.WriteLine(10)
                    cuirassesanglierdéfense.Close()
                    ajoutargent = 100
                End If
                If selection = ("Heaume du chevalier") Then
                    Dim hchevalierattaque As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaquetete.txt")
                    hchevalierattaque.WriteLine(0)
                    hchevalierattaque.Close()
                    Dim hchevalierdéfense As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defensetete.txt")
                    hchevalierdéfense.WriteLine(10)
                    hchevalierdéfense.Close()
                    ajoutargent = 100
                End If
                If selection = ("Bouclier d'Irthanne") Then
                    Dim nbouclierattaque As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaquearme.txt")
                    nbouclierattaque.WriteLine(20)
                    nbouclierattaque.Close()
                    Dim nbouclierdéfense As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defensearme.txt")
                    nbouclierdéfense.WriteLine(8)
                    nbouclierdéfense.Close()
                    ajoutargent = 400
                End If
                If selection = ("Troublon de nain") Then
                    Dim ntroublonattaque As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaquearme.txt")
                    ntroublonattaque.WriteLine(15)
                    ntroublonattaque.Close()
                    Dim ntroublondéfense As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defensearme.txt")
                    ntroublondéfense.WriteLine(0)
                    ntroublondéfense.Close()
                    ajoutargent = 175
                End If
                If selection = ("Epée d'aventurier") Then
                    Dim eaventurierattaque As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaquearme.txt")
                    eaventurierattaque.WriteLine(18)
                    eaventurierattaque.Close()
                    Dim eaventurierdéfense As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defensearme.txt")
                    eaventurierdéfense.WriteLine(0)
                    eaventurierdéfense.Close()
                    ajoutargent = 200
                End If
                If selection = ("Arc Sylvain") Then
                    Dim asylvainattaque As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaquearme.txt")
                    asylvainattaque.WriteLine(15)
                    asylvainattaque.Close()
                    Dim asylvaindéfense As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defensearme.txt")
                    asylvaindéfense.WriteLine(0)
                    asylvaindéfense.Close()
                    ajoutargent = 150
                End If
                If selection = ("Cuirasse de Kaslocks") Then
                    Dim ckaslocksattaque As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaquecuirasse.txt")
                    ckaslocksattaque.WriteLine(25)
                    ckaslocksattaque.Close()
                    Dim ckaslocksdéfense As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defensecuirasse.txt")
                    ckaslocksdéfense.WriteLine(0)
                    ckaslocksdéfense.Close()
                    ajoutargent = 300
                End If
                If selection = ("Chapeau de l'aventurier") Then
                    Dim caventurieratt As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaquetete.txt")
                    caventurieratt.WriteLine(15)
                    caventurieratt.Close()
                    Dim caventurierdef As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defensetete.txt")
                    caventurierdef.WriteLine(0)
                    caventurierdef.Close()
                    ajoutargent = 120
                End If
                If selection = ("Bonnet de laine blindé") Then
                    Dim bblindéatt As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaquetete.txt")
                    bblindéatt.WriteLine(0)
                    bblindéatt.Close()
                    Dim bblindédef As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defensetete.txt")
                    bblindédef.WriteLine(30)
                    bblindédef.Close()
                    ajoutargent = 450
                End If
                Dim fileargent = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\stats\argent.txt")
                Dim lineargent As String = ""
     
                'Lecture de la premiere ligne du fichier
                Dim srargent As New System.IO.StreamReader(fileargent)
                lineargent = srargent.ReadLine
                srargent.Close()
                Kill(fileargent)
                If IsNumeric(lineargent.Trim) AndAlso Integer.Parse(lineargent.Trim) Then
                    lineargent = (Integer.Parse(lineargent.Trim) - ajoutargent).ToString
                End If
                'Reecriture du fichier
                Dim swargent As New System.IO.StreamWriter(fileargent)
                swargent.WriteLine(lineargent)
                swargent.Close()
     
            Else
                MsgBox("Vous ne possédez pas assez d'argent pour acheter cette article.")
            End If
    Mais j'ai un problème: lorsque le contenu du fichier argent (l'argent possédé) est supérieur ou égal au prix, il croit qu'il est inférieur au prix et m'affiche donc "Vous ne possédez pas assez d'argent." Cela fonctionne uniquement lorsque l'argent possédé est supérieur au prix sans dépasser 100.
    Auriez-vous une explication?

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    665
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 665
    Points : 1 161
    Points
    1 161
    Par défaut
    Bonsoir
    une remarque.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
            Dim ajoutargent As String
            Dim argent As New System.IO.StreamReader(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\stats\argent.txt")
            Dim money = argent.ReadLine
            argent.Close()
            'Ajout des effets au personnage.
            'Le fichier à lire pour tous les objets
            If money >= Label3.Text Then
    Je suppose que tu veux comparer des valeurs numériques et là, tu compares des string.
    Si tu testes dans ces conditions (valeurs alphabétiques), par exemple 1500 et 2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
            Dim money = "1500" 'argent.ReadLine
            If money >= "2" Then 'Label3.Text Then
                MessageBox.Show("1500 est supérieur à 2")
            Else
                MessageBox.Show("1500 est inférieur à 2")
            End If
        End Sub
    te donne : 1500 est inférieur à 2
    Donc convertir tes String dans le type adéquat.

  8. #8
    Membre du Club
    Homme Profil pro
    Amateur vb.net
    Inscrit en
    Avril 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Amateur vb.net
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 99
    Points : 60
    Points
    60
    Par défaut
    D'accord j'ai fait ce que tu m'as dit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
            Dim ajoutargent As Integer
            Dim argent As New System.IO.StreamReader(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\stats\argent.txt")
            Dim money As Integer = argent.ReadLine
            argent.Close()
            'Ajout des effets au personnage.
            'Le fichier à lire pour tous les objets
            If money >= ajoutargent Then
    Mais par contre si le résultat l'argent restant est égal à 1,2,3 (c'est à dire un nombre en dessous du prix), il descend en nombre négatif sans détecter que le nombre et trop petit. Par contre une fois que c'est un nombre négatif, il détecte qu'il est trop petit. Comment l’empêcher d'arriver dans les nombres négatifs?

    Edit
    Et aussi (j'ai oublié de le préciser) si l'argent possédé est égal au prix, le fichier où se trouve l'argent descend à 0. Mais une fois qu'il est à 0, si on rachète l'objet il ne va pas dans les négatifs sans pour autant détecter qu'il est trop petit, auriez-vous une explication à tous ces problèmes?

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    665
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 665
    Points : 1 161
    Points
    1 161
    Par défaut
    Bonjour,
    pour la première question, il faut voir ce qu'il reste dans son porte monnaies après le désir d'achat et la connaissance de son prix, un peu comme dans la vraie vie.
    Donc déplacer cette comparaison plus bas, une fois le choix fait :
    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
            If money >= ajoutargent Then
                Dim fileargent = Application.StartupPath & "\argent.txt"
                Dim lineargent As String = ""
     
                'Lecture de la premiere ligne du fichier
                Dim srargent As New System.IO.StreamReader(fileargent)
                lineargent = srargent.ReadLine
                srargent.Close()
                Kill(fileargent)
                If IsNumeric(lineargent.Trim) AndAlso Integer.TryParse(lineargent.Trim, CInt(lineargent)) Then
                    lineargent = (Integer.Parse(lineargent.Trim) - ajoutargent).ToString
                End If
                'Reecriture du fichier
                Dim swargent As New System.IO.StreamWriter(fileargent)
                swargent.WriteLine(lineargent)
                swargent.Close()
     
            Else
                MsgBox("Vous ne possédez pas assez d'argent pour acheter cette article.")
            End If
    aussi mets Option Strict sur On.

  10. #10
    Membre du Club
    Homme Profil pro
    Amateur vb.net
    Inscrit en
    Avril 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Amateur vb.net
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 99
    Points : 60
    Points
    60
    Par défaut
    Excuses moi mais je n'ai pas compris ou mettre la comparaison plus bas et comment changerloptipn dont tu parles.

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    665
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 665
    Points : 1 161
    Points
    1 161
    Par défaut
    Je parlais de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If money >= ajoutargent Then
    Il doit être placé après l'essai d'un achat et la connaissance de sa valeur.
    Donc après les :
    Soit dans ton 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
        Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
     
            Dim selection As String = "Collier d'ours"
     
            Dim ajoutargent As Integer
            Dim argent As New System.IO.StreamReader(Application.StartupPath & "\argent.txt")
            Dim money As Integer = CInt(argent.ReadLine)
            argent.Close()
            'Ajout des effets au personnage.
            'Le fichier à lire pour tous les objets
            'If money >= ajoutargent Then
            If selection = ("Collier d'ours") Then
                Dim ourstêteattaque As New System.IO.StreamWriter(Application.StartupPath & "\attaquetete.txt")
                ourstêteattaque.WriteLine(5)
                ourstêteattaque.Close()
                Dim ourstêtedéfense As New System.IO.StreamWriter(Application.StartupPath & "\defensetete.txt")
                ourstêtedéfense.WriteLine(0)
                ourstêtedéfense.Close()
                ajoutargent = 50
            End If
            ' .......
            ' .......
            If selection = ("Bonnet de laine blindé") Then
                Dim bblindéatt As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaquetete.txt")
                bblindéatt.WriteLine(0)
                bblindéatt.Close()
                Dim bblindédef As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defensetete.txt")
                bblindédef.WriteLine(30)
                bblindédef.Close()
                ajoutargent = 450
            End If
            If money >= ajoutargent Then
                Dim fileargent = Application.StartupPath & "\argent.txt"
                Dim lineargent As String = ""
     
                'Lecture de la premiere ligne du fichier
                Dim srargent As New System.IO.StreamReader(fileargent)
                lineargent = srargent.ReadLine
                srargent.Close()
                Kill(fileargent)
                If IsNumeric(lineargent.Trim) AndAlso Integer.TryParse(lineargent.Trim, CInt(lineargent)) Then
                    lineargent = (Integer.Parse(lineargent.Trim) - ajoutargent).ToString
                End If
                'Reecriture du fichier
                Dim swargent As New System.IO.StreamWriter(fileargent)
                swargent.WriteLine(lineargent)
                swargent.Close()
     
            Else
                MsgBox("Vous ne possédez pas assez d'argent pour acheter cette article.")
            End If
        End Sub
    Enfin pour l'Option Strict regarde ici, le pourquoi et comment faire pour l'activer.

  12. #12
    Membre du Club
    Homme Profil pro
    Amateur vb.net
    Inscrit en
    Avril 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Amateur vb.net
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 99
    Points : 60
    Points
    60
    Par défaut
    Si j'ai bien compris, il faut répéter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If money >= ajoutargent then
    2 fois. Non?

  13. #13
    Membre du Club
    Homme Profil pro
    Amateur vb.net
    Inscrit en
    Avril 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Amateur vb.net
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 99
    Points : 60
    Points
    60
    Par défaut
    Merci de ton aide. Le 2ème parvient à détecter qu'il n'y a pas assez d'argent. Le retrait d'argent ne se fait donc pas. Par contre le premier ne parvient toujours pas à détecter qu'il n'y a pas assez d'argent donc les effets des objets sont quand même attribués. Mais peut-être qu'étant donné que ce sont des "if" dans des "if", même si le premier est faux, les seconds sont quand même effectués si ils sont vrais, est-ce possible?

    PS: J'ai essayé en ajoutant la condition "money >= argent" tous les articles mais le problème persiste.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     If money >= ajoutargent Then
                If selection = ("Collier d'ours") & money >= ajoutargent Then

  14. #14
    Membre éclairé Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Points : 801
    Points
    801
    Par défaut
    Salut,
    Citation Envoyé par herroP Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     If money >= ajoutargent Then
                If selection = ("Collier d'ours") & money >= ajoutargent Then
    Ta 2nd condition money >= ajoutargent est inutile puisque la vérification est déjà faite en amont.
    J’ai des questions à toutes vos réponses!

  15. #15
    Membre du Club
    Homme Profil pro
    Amateur vb.net
    Inscrit en
    Avril 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Amateur vb.net
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 99
    Points : 60
    Points
    60
    Par défaut
    Oui bien sur je m'en doutais mais c'était juste pour essayer, voici tout mon 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
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    Dim ajoutargent As Integer
            Dim argent As New System.IO.StreamReader(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\stats\argent.txt")
            Dim money As Integer = CInt(argent.ReadLine)
            argent.Close()
            'Ajout des effets au personnage.
            'Le fichier à lire pour tous les objets
            If money >= ajoutargent Then
                If money >= ajoutargent Then
                    If selection = ("Collier d'ours") Then
                        Dim ourstêteattaque As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaquetete.txt")
                        ourstêteattaque.WriteLine(5)
                        ourstêteattaque.Close()
                        Dim ourstêtedéfense As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defensetete.txt")
                        ourstêtedéfense.WriteLine(0)
                        ourstêtedéfense.Close()
                        ajoutargent = 50
                        Dim oursnom As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\equipement\tete.txt")
                        oursnom.WriteLine("Collier d'ours")
                        oursnom.Close()
                    End If
                    If selection = ("Cape du mage Tanzou") Then
                        Dim capetanzouattaque As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaquecape.txt")
                        capetanzouattaque.WriteLine(100)
                        capetanzouattaque.Close()
                        Dim capetanzoudéfense As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defensecape.txt")
                        capetanzoudéfense.WriteLine(0)
                        capetanzoudéfense.Close()
                        ajoutargent = 10000
                        Dim capetanzou As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\equipement\cape.txt")
                        capetanzou.WriteLine("Cape du mage Tanzou")
                        capetanzou.Close()
                    End If
                    If selection = ("Capuchon du mage Tanzou") Then
                        Dim capuchontanzouattaque As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaquetete.txt")
                        capuchontanzouattaque.WriteLine(0)
                        capuchontanzouattaque.Close()
                        Dim capuchontanzoudéfense As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defensetete.txt")
                        capuchontanzoudéfense.WriteLine(100)
                        capuchontanzoudéfense.Close()
                        ajoutargent = 10000
                        Dim nomctanzou As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\equipement\tete.txt")
                        nomctanzou.WriteLine("Capuchon du mage Tanzou")
                        nomctanzou.Close()
                    End If
                    If selection = ("Batte de tanball du mage Tanzou") Then
                        Dim battetanzouattaque As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaquearme.txt")
                        battetanzouattaque.WriteLine(150)
                        battetanzouattaque.Close()
                        Dim battetanzoudéfense As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defensearme.txt")
                        battetanzoudéfense.WriteLine(0)
                        battetanzoudéfense.Close()
                        ajoutargent = 12500
                        Dim battetanzounom As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\equipement\arme.txt")
                        battetanzounom.WriteLine("Batte de tanball du mage Tanzou")
                        battetanzounom.Close()
                    End If
                    If selection = ("Cuirasse du mage Tanzou") Then
                        Dim cuirassetanzouattaque As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaquecuirasse.txt")
                        cuirassetanzouattaque.WriteLine(0)
                        cuirassetanzouattaque.Close()
                        Dim cuirassetanzoudéfense As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defensecuirasse.txt")
                        cuirassetanzoudéfense.WriteLine(150)
                        cuirassetanzoudéfense.Close()
                        ajoutargent = 12500
                        Dim cuirassetanzounom As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\equipement\cuirasse.txt")
                        cuirassetanzounom.WriteLine("Cuirasse du mage Tanzou")
                        cuirassetanzounom.Close()
                    End If
                    If selection = ("Chapeau parasol") Then
                        Dim cparasolattaque As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaquetete.txt")
                        cparasolattaque.WriteLine(0)
                        cparasolattaque.Close()
                        Dim cparasoldéfense As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defensetete.txt")
                        cparasoldéfense.WriteLine(15)
                        cparasoldéfense.Close()
                        ajoutargent = 150
                    End If
                    If selection = ("Cape de l'aventurier") Then
                        Dim cape_de_laventurierattaque As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaquecape.txt")
                        cape_de_laventurierattaque.WriteLine(0)
                        cape_de_laventurierattaque.Close()
                        Dim cape_de_laventurierdéfense As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defensecape.txt")
                        cape_de_laventurierdéfense.WriteLine(10)
                        cape_de_laventurierdéfense.Close()
                        ajoutargent = 80
                    End If
                    If selection = ("Cuirasse en cuir de cochon") Then
                        Dim cuirassecochonattaque As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaquecuirasse.txt")
                        cuirassecochonattaque.WriteLine(0)
                        cuirassecochonattaque.Close()
                        Dim cuirassecochondéfense As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defensecuirasse.txt")
                        cuirassecochondéfense.WriteLine(5)
                        cuirassecochondéfense.Close()
                        ajoutargent = 50
                    End If
                    If selection = ("Cuirasse en cuir de sanglier") Then
                        Dim cuirassesanglierattaque As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaquecuirasse.txt")
                        cuirassesanglierattaque.WriteLine(0)
                        cuirassesanglierattaque.Close()
                        Dim cuirassesanglierdéfense As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defensecuirasse.txt")
                        cuirassesanglierdéfense.WriteLine(10)
                        cuirassesanglierdéfense.Close()
                        ajoutargent = 100
                    End If
                    If selection = ("Heaume du chevalier") Then
                        Dim hchevalierattaque As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaquetete.txt")
                        hchevalierattaque.WriteLine(0)
                        hchevalierattaque.Close()
                        Dim hchevalierdéfense As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defensetete.txt")
                        hchevalierdéfense.WriteLine(10)
                        hchevalierdéfense.Close()
                        ajoutargent = 100
                    End If
                    If selection = ("Bouclier d'Irthanne") Then
                        Dim nbouclierattaque As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaquearme.txt")
                        nbouclierattaque.WriteLine(20)
                        nbouclierattaque.Close()
                        Dim nbouclierdéfense As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defensearme.txt")
                        nbouclierdéfense.WriteLine(8)
                        nbouclierdéfense.Close()
                        ajoutargent = 400
                    End If
                    If selection = ("Troublon de nain") Then
                        Dim ntroublonattaque As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaquearme.txt")
                        ntroublonattaque.WriteLine(15)
                        ntroublonattaque.Close()
                        Dim ntroublondéfense As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defensearme.txt")
                        ntroublondéfense.WriteLine(0)
                        ntroublondéfense.Close()
                        ajoutargent = 175
                    End If
                    If selection = ("Epée d'aventurier") Then
                        Dim eaventurierattaque As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaquearme.txt")
                        eaventurierattaque.WriteLine(18)
                        eaventurierattaque.Close()
                        Dim eaventurierdéfense As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defensearme.txt")
                        eaventurierdéfense.WriteLine(0)
                        eaventurierdéfense.Close()
                        ajoutargent = 200
                    End If
                    If selection = ("Arc Sylvain") Then
                        Dim asylvainattaque As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaquearme.txt")
                        asylvainattaque.WriteLine(15)
                        asylvainattaque.Close()
                        Dim asylvaindéfense As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defensearme.txt")
                        asylvaindéfense.WriteLine(0)
                        asylvaindéfense.Close()
                        ajoutargent = 150
                    End If
                    If selection = ("Cuirasse de Kaslocks") Then
                        Dim ckaslocksattaque As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaquecuirasse.txt")
                        ckaslocksattaque.WriteLine(25)
                        ckaslocksattaque.Close()
                        Dim ckaslocksdéfense As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defensecuirasse.txt")
                        ckaslocksdéfense.WriteLine(0)
                        ckaslocksdéfense.Close()
                        ajoutargent = 300
                    End If
                    If selection = ("Chapeau de l'aventurier") Then
                        Dim caventurieratt As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaquetete.txt")
                        caventurieratt.WriteLine(15)
                        caventurieratt.Close()
                        Dim caventurierdef As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defensetete.txt")
                        caventurierdef.WriteLine(0)
                        caventurierdef.Close()
                        ajoutargent = 120
                    End If
                    If selection = ("Bonnet de laine blindé") Then
                        Dim bblindéatt As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\attaquetete.txt")
                        bblindéatt.WriteLine(0)
                        bblindéatt.Close()
                        Dim bblindédef As New System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\effet\defensetete.txt")
                        bblindédef.WriteLine(30)
                        bblindédef.Close()
                        ajoutargent = 450
                    End If
                End If
                If money >= ajoutargent Then
                    Dim fileargent = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\stats\argent.txt")
                    Dim lineargent As String = ""
     
                    'Lecture de la premiere ligne du fichier
                    Dim srargent As New System.IO.StreamReader(fileargent)
                    lineargent = srargent.ReadLine
                    srargent.Close()
                    Kill(fileargent)
                    If IsNumeric(lineargent.Trim) AndAlso Integer.Parse(lineargent.Trim) Then
                        lineargent = (Integer.Parse(lineargent.Trim) - ajoutargent).ToString
                    End If
                    'Reecriture du fichier
                    Dim swargent As New System.IO.StreamWriter(fileargent)
                    swargent.WriteLine(lineargent)
                    swargent.Close()
                Else
                    MsgBox("Vous ne possédez pas assez d'argent pour acheter cette article.")
                End If
            Else
                MsgBox("Vous ne possédez pas assez d'argent pour acheter cette article.")
            End If
    Curieusement, il détecte qu'il n'y a pas assez d'argent à:

    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
    If money >= ajoutargent Then
                    Dim fileargent = (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Zune\stats\argent.txt")
                    Dim lineargent As String = ""
     
                    'Lecture de la premiere ligne du fichier
                    Dim srargent As New System.IO.StreamReader(fileargent)
                    lineargent = srargent.ReadLine
                    srargent.Close()
                    Kill(fileargent)
                    If IsNumeric(lineargent.Trim) AndAlso Integer.Parse(lineargent.Trim) Then
                        lineargent = (Integer.Parse(lineargent.Trim) - ajoutargent).ToString
                    End If
                    'Reecriture du fichier
                    Dim swargent As New System.IO.StreamWriter(fileargent)
                    swargent.WriteLine(lineargent)
                    swargent.Close()
                Else
                    MsgBox("Vous ne possédez pas assez d'argent pour acheter cette article.")
                End If
            Else
                MsgBox("Vous ne possédez pas assez d'argent pour acheter cette article.")
            End If

  16. #16
    Membre éclairé Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Points : 801
    Points
    801
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim ajoutargent As Integer
    '...
    If money >= ajoutargent Then
    Déjà quand tu teste la valeur de ajoutargent, la variable n'a encore pas été initialisée (elle doit même être soulignée en vert ^^).

    A quoi est ce qu'elle correspond?

    EDIT: je pense que ton problème vient de l'ordre des instructions que tu veux exécuter. Je te conseille de poser à plat l'algo (papier?), avec les différentes actions et vérifications que tu dois faire et surtout dans quel ordre tu dois les faire.
    J’ai des questions à toutes vos réponses!

  17. #17
    Membre du Club
    Homme Profil pro
    Amateur vb.net
    Inscrit en
    Avril 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Amateur vb.net
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 99
    Points : 60
    Points
    60
    Par défaut
    Elle correspond au prix. Elle n'est pas soulignée en vert. Mais il devrait donc détecter une erreur non? Je penses quand même que tu as raison, je vais essayé de le mettre avant. Mais en mettant l'option strict sur on, une erreur est présente ici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If IsNumeric(lineargent.Trim) AndAlso Integer.Parse(lineargent.Trim) Then
                        lineargent = (Integer.Parse(lineargent.Trim) - ajoutargent).ToString
                    End If
    Erreur 1 Option Strict On interdit les conversions implicites de 'Integer' en 'Boolean'. M:\Projet Zune\Magasin\Magasin\Form1.vb 313 55 Magasin

  18. #18
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    665
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 665
    Points : 1 161
    Points
    1 161
    Par défaut
    Bonsoir,
    Je vois, tu dois donc tester si tu peux acheter à chaque if selection, en indiquant le prix avant genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            If selection = ("Collier d'ours") Then
                ajoutargent = 50
                If money >= ajoutargent Then
                    Dim ourstêteattaque As New System.IO.StreamWriter(Application.StartupPath & "\attaquetete.txt")
                    ourstêteattaque.WriteLine(5)
                    ourstêteattaque.Close()
                    Dim ourstêtedéfense As New System.IO.StreamWriter(Application.StartupPath & "\defensetete.txt")
                    ourstêtedéfense.WriteLine(0)
                    ourstêtedéfense.Close()
                End If
            End If
    Tu peux continuer comme cela pour cette application, mais après pour un prochain projet, pose tout sur papier avant, ça aide à la réflexion.
    Lis les cours aussi, car une série de if comme ça, on doit éviter.
    C'est aussi en pratiquant qu'on apprend, donc courage.

  19. #19
    Membre éclairé Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Points : 801
    Points
    801
    Par défaut
    Citation Envoyé par herroP Voir le message
    une erreur est présente ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If IsNumeric(lineargent.Trim) AndAlso Integer.Parse(lineargent.Trim) Then
        lineargent = (Integer.Parse(lineargent.Trim) - ajoutargent).ToString
    End If
    Quand tu écris Integer.Parse(lineargent.Trim), ca renvoie un type Integer alors que dans un if on teste un booleen, d'ou l'erreur.
    A la limite il y a Integer.TryParse qui renvoie un booleen si la conversion a reussie et qui assigne la valeur de type Integer à une autre variable.

    Peut être comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim number As Integer = 0
    If  Integer.TryParse(lineargent.Trim, number) Then
        lineargent = (number - ajoutargent).ToString
    End If
    J’ai des questions à toutes vos réponses!

  20. #20
    Membre du Club
    Homme Profil pro
    Amateur vb.net
    Inscrit en
    Avril 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Amateur vb.net
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 99
    Points : 60
    Points
    60
    Par défaut
    Merci à tous pour votre aide, j'ai finalement mit sur off l'option strict car elle ne me servait à rien. Je passe le sujet en résolu.
    Cordialement.

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 24/10/2013, 15h31
  2. Exécution d'un calcul avec une condition
    Par nomade333 dans le forum VBA Access
    Réponses: 1
    Dernier message: 19/12/2011, 06h37
  3. Réponses: 3
    Dernier message: 24/10/2005, 13h47
  4. Problème de requête avec une condition IN
    Par sorcer1 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 20/10/2005, 11h56
  5. envoyer submit avec une condition !
    Par delphinote dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 01/07/2005, 15h52

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