Accueil > > > SERIALIZATION : UNE METHODE POUR STOCKER DES DONNÉES
SERIALIZATION : UNE METHODE POUR STOCKER DES DONNÉES
Information sur la source
Description
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
- '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
'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"
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
aide shell [ par kayia ]
La commande shell permet d'executer une application (.exe) .Le probléme est de ne pas savoir l'instant presisou la commande à fini le traitement.exp:l
sauvegarde d'options interne au programme [ par Brodeur ]
Bonjour, je voudrais savoir comment faire pour que lorsque je redemarre mon programme, les options que j'y avais definie ne soit pas reinnisialisé. J
sauvegarde d'options interne au programme (2) [ par Brodeur ]
Merci de vos reponse ( voir un peu avant sur ce forum ) mais pourriez vous m'expliquer clairement comment faire pour enregistrer des options dans un
Sauvegarde sur bande... [ par Thomas ]
Y aurait-t-il quelqu'un qui sait comment "ouvrir" un lecteur de bande avec la fonction CreateFile. Selon Microsoft la syntaxe est la suivante: fHandle
??pb de sauvegarde de textbox ??? help me !!! [ par Néo ]
bjrJe programme en vb sur word 97.Sur un USERFORM1 se trouve un textbox1 et un bouton. Lorsque les données sont entrées dans le textbox après action s
Pb sauvegarde textbox ?? un exemple please [ par Néo ]
bjrJe programme en vb sur word 97.Sur un USERFORM1 se trouve un textbox1 et un bouton. Lorsque les données sont entrées dans le textbox après action s
sauvegarde de textbox help please [ par néo (personne ne veux me répondre) ]
bjrJe programme en vb sur word 97.Sur un USERFORM1 se trouve un textbox1 et un bouton. Lorsque les données sont entrées dans le textbox après action s
decimale et sauvegarde [ par blindman ]
salutpeut tu m'aiderje voudrais conserveru une valeur du style 14.568 dans un fichier texte ou la base de registre pour que mon appli la lise lors de
Sauvegarde de classes ... [ par peug.net ]
On sauvegarde les classes sur disque avec la méthode open....close normalement ou on fait autrement ?Merci
|
Derniers Blogs
XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|