Voici une méthode appelée Serialization qui permet de stocker des données. Ce code permet de sauvegarder sous forme de fichier Binaire. Il existe cependant d'autres méthodes pour sauvegarder sous forme de fichier XML par exemple.
Ce code est tres simple, et bien commenté je pense.
Attention, le dossier du projet est appelé ProjetTCP !! Ne pas s'y fier, c'est une erreur de ma part. Il suffit simplement d'ouvrir le fichier Projet nommé : "ProjetSerializer"
Voila.
Source / Exemple :
'Programme de Alexandre Scellier
'Aide avec MSDN Dot Net.
'Import des ressources nécéssaires à la sérialisation(1) et à la création de fichiers(2)
Imports System.Windows.Forms
Imports System.IO '-> (2)
Imports System.Runtime.Serialization.Formatters.Binary '-> (1)
Public Class Client
'Pour un accès à la fonction de création d'un fichier "Compta.Bin" dans le projet entier,
'Il est plus pratique de créer une procédure accessible depuis tout le Module en cours
'Ce qui permet que lorsqu'une erreur est produite de recreer un fichier sans erreur :
'Une déclaration de type Public est interdite dans une procédure.
Private Sub CreateFile()
myFileStream = File.Create("c:\Compta.bin")
End Sub
'Ajout d'un objet à la classe Compta :
Private NewValue As New ValueToSerialize
'Déclaration des variables qui serviront à la sérialisation :
'Cette variable est nécéssaire pour la création du fichier de stockage
'de la Sérialisation
Public myFileStream As Stream = Nothing
'Procédure de sérialisation :
Private Sub Client_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Stockage de deux valeurs à la classe Compta :
NewValue.Stock1 = "Vive"
NewValue.Stock2 = "Code Source"
On Error GoTo BlocErreur
Début:
CreateFile() 'Appel de la fonction de création de fichiers
Dim serializer As New BinaryFormatter 'Création d'un objet de la classe Serialize
serializer.Serialize(myFileStream, NewValue) 'Sérialisation des données
myFileStream.Close() 'Fermeture du Fichier
GoTo Fin
'Bloc de gestion des erreurs évantuelles :
'Il survient une erreur si le fichier existe deja, donc, on le supprime :
BlocErreur:
MsgBox("Une erreur est survenue, le programme tente de remedier au problème...")
If File.GetAttributes("c:\Compta.bin") = FileAttributes.ReadOnly Then
System.IO.File.Delete("c:\Compta.bin")
Else
MsgBox("Le fichier ne prend pas en charge l'ecriture dans celui ci.")
MsgBox("Le programme va se fermer...")
End
End If
MsgBox("Le programme tente d'acceder à nouveau au fichier...")
GoTo Début
Fin:
'Inutile de préciser :p ...
MsgBox("Exportation Réussie")
End Sub
'Procédure de DEserialisation :
Private Sub Cmd_Recuperer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cmd_Recuperer.Click
'Création d'une nouvelle classe pour stocker les données
Dim NewValue As New ValueToSerialize
'Test de l'existence du Fichier :
If File.Exists("c:\Compta.bin") Then
'Création d'un StreamFile :
Dim myFileStream As Stream = File.OpenRead("c:\Compta.bin")
'Appel de la classe DEserialisationn :
Dim deserializer As New BinaryFormatter()
'Recupération des Données :
NewValue = CType(deserializer.Deserialize(myFileStream), ValueToSerialize)
'Affichage des données dans une TextBox :
TextBox1.Text = NewValue.Stock1 & " " & NewValue.Stock2
'Fermeture du Fichier
myFileStream.Close()
End If
End Sub
Private Sub Cmd_Quitter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cmd_Quitter.Click
End
End Sub
End Class
'ATTENTION : Les Classes crées doivent figurer en bas du projet. La classe de la Form
'Doit toujours être en entête du projet.
'Ici, on cree une Classe Compta contenant deux Valeurs qui seront serialisées :
<System.Serializable()> Public Class ValueToSerialize
Friend Stock1 As String
Friend Stock2 As String
End Class
Conclusion :
Attention, le dossier du projet est appelé ProjetTCP !! Ne pas s'y fier, c'est une erreur de ma part. Il suffit simplement d'ouvrir le fichier Projet nommé : "ProjetSerializer"
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.