Soyez le premier à donner votre avis sur cette source.
Vue 14 707 fois - Téléchargée 1 160 fois
'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
oui lol merci j'ai deja faitde la serialization pas mal de fois sur des collection des dictionnary ect ...
"il suffit de convertir correctement tes photos dans les objets et ensuite de sérializer le tout."
ca n'a pas de sens proprement dit car c'est le framework qui via l'interface iserializable et iserializaton serialize ce qu'il veux
donc je repose la question ^^
quand veux serializé une image faut le faire a la mimine en crééant des objet qui contienne tte les info avec implementation des interface que j'ai cité au dessus (comme fait dans la source que j'ai cité) ou est ce qu'il le fait tout seul
"je l'ai fait pour un prog de dessins."
URL ? ^^
ca fait un peu barbare, c'est pas tout a fait comme c qu'il faut "entammer" la serialzation.
ca marche certe mais c'est pas trop la methode a utiliser je dirais
je vais essayé de t'en retrouvé un propre qui permet en plus de spécialiser la serialization :
http://www.csharpfr.com/codes/SERIALISATION-XML-DICTIONARY_40912.aspx
(le vb.net etant exactement pareil que le C# et le niveau etant simple pas d'excuse de comprehension a la lecture)
cela dit je voudrais savoir si t'as deja essayé de serializer des objet de type image (system.drawig.image) pour savoir si a un moyen de forcer a serialiser les données "brut" de l'image pour vraiment integré l'image au fichier afin d epas se trimballé avec n+1 fichier (n image + le fichier serialiser)
Alex.
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.