[VB.net]Programme qui enregistre des informations

cs_Anakin79 Messages postés 88 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 9 novembre 2010 - 25 juin 2010 à 15:36
cs_aus3004 Messages postés 319 Date d'inscription jeudi 1 avril 2010 Statut Membre Dernière intervention 16 mars 2011 - 27 juin 2010 à 11:47
Bonjour,

Il y a deux jours, j'ai eu l'idée de faire un programme en vb.net qui enregistrerais les notes scolaires de mes sœurs et de mon frère.

Voici quelque screens :





Je voudrais que quand je rentre une notes (exemple : 18/20) dans la colonnes à droites de la deuxième image (qui n'est pas encore faite ^^") que celle ci s'enregistre dans un fichier qui est situer sur mon disque dur et que cette note apparaissent dans la colonnes notes à gauche de la deuxième image.
Mais le seul problème c'est que je ne c'est comment faire, j'ai chercher sur google mais il ne ma rien apporter de plus.

Avez-vous une solution ?
Merci d'avance

11 réponses

bastien27100 Messages postés 31 Date d'inscription mardi 18 mai 2010 Statut Membre Dernière intervention 8 juin 2011
25 juin 2010 à 15:59
salut,
tu peut mettre une textbox dans laquelle tu rentrera les notes, avec un bouton enregistrer en dessous qui te servira a enregistrer la note dans un fichier xml, et ensuite tu peut charger le fichier dans une listbox et faire défiler les notes


<?xml version="1.0" encoding="utf-8"?>
<Jerome>
<NoteJ>
<Français>15</Français>
<Maths>12<Maths>
...
</NoteJ>
</Jerome>

<Soeur1>
<NoteJ>
<Français>13</Français>
<Maths>17<Maths>
...
</NoteJ>
</Soeur1>
etc...
aprés à l'aide de Xpath tu va chercher le contenu de chaque élément, que tu affiche dans tes listbox, tu peut ensuite ajouter un calcul de coefficient, moyenne...
0
cs_Anakin79 Messages postés 88 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 9 novembre 2010 1
25 juin 2010 à 16:30
merci beaucoup pour ta réponse Bastien
0
cs_Anakin79 Messages postés 88 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 9 novembre 2010 1
25 juin 2010 à 16:32
Euhh... encore quelque chose, comment je fais le bouton enregistrer ?
0
bastien27100 Messages postés 31 Date d'inscription mardi 18 mai 2010 Statut Membre Dernière intervention 8 juin 2011
25 juin 2010 à 18:52
voila la fonction pour enregistrer dans un fichier xml :

Public Sub addElement(ByVal path As String, ByVal nom As String, ByVal valeur As String)

Try
'charge le fichier xml
Dim doc As New XmlDocument
doc.Load(fichier)

'selectionne le noeud parent de l'élément à ajouter
Dim root As XmlNode = doc.SelectSingleNode(path)

'création du nouvel élément
Dim elem As XmlElement = doc.CreateElement(nom)

'on lui assigne une valeur
elem.InnerText = valeur

'puis on l'ajoute au noeud parent
root.AppendChild(elem)

'on sauvegarde
doc.Save(fichier)

Catch e As Exception
MsgBox("Erreur dans la création de l'élément : " & e.Message)
End Try

End Sub

ensuite tu appel cette fonction dans ton bouton enregistrer :

Public Sub BT_ENREG_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_ENREG.Click
'instancie un nouveau fichier xml
Dim X As New taform("tonfichier.xml")
'tu ajoute tes éléments
X.addElement("/ta balise parent ou il sera enregistré", nom , valeur donc ton textbox.text)

end sub
0

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

Posez votre question
cs_Anakin79 Messages postés 88 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 9 novembre 2010 1
25 juin 2010 à 20:50
Lorsque je rentre le fonction pour enregistrer dans un document xml, il m'affiche 7 erreurs :

Erreur 1 Cette instruction ne peut pas
apparaître dans le corps d'une méthode. Elle est interprétée comme la fin de la méthode.

Erreur 2 Type 'XmlDocument' non défini.

Erreur 3 Le nom 'fichier' n'est pas déclaré.

Erreur 4 Type 'XmlNode' non défini.

Erreur 5 Type 'XmlElement' non défini.

Erreur 6 Le nom 'fichier' n'est pas déclaré.

Erreur 7 'End Sub' doit être précédé d'un 'Sub' correspondant.

Et pour le bouton enregistrer, il trouve 6 erreurs :

Erreur 5 Virgule, ')' ou continuation d'expression valide attendue

Erreur 2 Type 'taform' non défini.

Erreur 4 Le nom 'valeur' n'est pas déclaré.

Erreur 3 Le nom 'nom' n'est pas déclaré.

Erreur 1 La clause Handles requiert une variable WithEvents définie dans le type conteneur ou l'un de ses types de base.

Erreur 6 'End Sub' doit être précédé d'un 'Sub' correspondant. C:\Documents and Settings\Jack O'neill\Bureau\Suivi des notes scolaire\Suivi des notes scolaire\Suivi des notes scolaire\Form2.vb 39 5 Suivi des notes scolaire
0
bastien27100 Messages postés 31 Date d'inscription mardi 18 mai 2010 Statut Membre Dernière intervention 8 juin 2011
25 juin 2010 à 22:57
oui il faut que tu importe au dessus de ta classe :
Imports System.Xml
Imports System.Xml.XPath

et que tu déclare dans ta classe :
Public fichier As String

comme sa :
'tu importe les bibliothéques xml
Imports System.Xml
Imports System.Xml.XPath

Public Class Form1
'Tu déclare fichier
Public fichier As String
...
end class


si tu est sous vb 2008 tu ne devrait plus avoir d'érreur
0
cs_Anakin79 Messages postés 88 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 9 novembre 2010 1
26 juin 2010 à 08:16
Re,
il me trouve encore 2 erreur dans le buttons

Voila le code
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    End Sub

    Public Sub BT_ENREG_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'instancie un nouveau fichier xml
        Dim X As New Form2("config.xml")
        'tu ajoute tes éléments
        X.addElement("/ta balise parent ou il sera enregistré, nom , valeur donc ton textbox.text")
    End Sub
End Class


Et les erreurs :

Erreur 2 Arguments trop nombreux pour 'Public Sub New()'.

Erreur 3 Argument non spécifié pour le paramètre 'nom' de 'Public Sub addElement(path As String, nom As String, valeur As String)'.

Erreur 4 Argument non spécifié pour le paramètre 'valeur' de 'Public Sub addElement(path As String, nom As String, valeur As String)'.

Et il me trouve aussi un avertissement dans l'enregistrement du fichier xml :

Voici le code :
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

    End Sub
    Public Sub addElement(ByVal path As String, ByVal nom As String, ByVal valeur As String)
        Dim fichier As String
        Try
            'charge le fichier xml
            Dim doc As New XmlDocument
            doc.Load(fichier)

            'selectionne le noeud parent de l'élément à ajouter
            Dim root As XmlNode = doc.SelectSingleNode(path)

            'création du nouvel élément
            Dim elem As XmlElement = doc.CreateElement(nom)

            'on lui assigne une valeur
            elem.InnerText = valeur

            'puis on l'ajoute au noeud parent
            root.AppendChild(elem)

            'on sauvegarde
            doc.Save(fichier)

        Catch e As Exception
            MsgBox("Erreur dans la création de l'élément : " & e.Message)
        End Try
    End Sub


Et l'avertissement :

Avertissement 1 La variable 'fichier' est utilisée avant qu'une valeur ne lui ait été assignée. Une exception de référence null peut se produire au moment de l'exécution.

PS :
J'ai été obliger de changer cette ligne là :

Public doc As New XmlDocument
            doc.Load(fichier)


En sa :

Dim doc As New XmlDocument
            doc.Load(fichier)


Et depuis il me met un avertissement, si je laisse telle qu'elle, il me met une erreur :

Erreur 1 'Public' n'est pas valide dans une déclaration de variable locale.
0
cs_aus3004 Messages postés 319 Date d'inscription jeudi 1 avril 2010 Statut Membre Dernière intervention 16 mars 2011 1
26 juin 2010 à 18:18
Je voudrais que quand je rentre une notes (exemple : 18/20) dans la colonnes à droites de la deuxième image (qui n'est pas encore faite ^^") que celle ci s'enregistre...
Slt, pourquoi ne pas utiliser My.settings, c'est beaucoup plus propre et ça évitera que les utilisateurs bidouillent les valeurs.

Bon courage,
@++


=) Ce qui est le plus important dans toute une vie c'est de voir ceci
0
cs_Anakin79 Messages postés 88 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 9 novembre 2010 1
27 juin 2010 à 09:28
re, je essayer d'utiliser my.setting mais je ne c'est pas comment on s'en sert aux niveau du code ^^"
0
cs_Anakin79 Messages postés 88 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 9 novembre 2010 1
27 juin 2010 à 09:29
désoler pour la faute : je essayer
Correction : j'ai essayé
0
cs_aus3004 Messages postés 319 Date d'inscription jeudi 1 avril 2010 Statut Membre Dernière intervention 16 mars 2011 1
27 juin 2010 à 11:47
Salut, pour utiliser My.Settings faut déjà que tu coche "Enregistrer My.Settings lors de l'arrêt" dans Projet =) Application.

Pour que tu maitrise My.Settings je vais te montrer un exemple pour limiter le nombre d'execution de ton programme (pratique si c'est un shareware).

Tu vas dans Projet =) Paramètres.
Tu ajoute : le nom de ton application (figurant dans l'onglet Application) dans Nom
"Integer" dans Type
"Utilisateur" dans Portée
"0" dans Valeur

Après tu mets ce code :

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
My.Settings.Lenomdemonapplication = My.Settings.Lenomdemonapplication + 1
If My.Setting.Lenomdemonapplication = 30 Then
Msgbox ("Vous avez executez l'application 30 fois, la limite est dépassée !")
End
End IF
End Sub


Bon courage
A+


=) Ce qui est le plus important dans toute une vie c'est de voir ceci
0
Rejoignez-nous