Enregistrer une variable dans un fichier

Messages postés
27
Date d'inscription
lundi 7 février 2005
Statut
Membre
Dernière intervention
22 avril 2008
- - Dernière réponse : cs_AgLS
Messages postés
27
Date d'inscription
lundi 7 février 2005
Statut
Membre
Dernière intervention
22 avril 2008
- 13 mars 2008 à 18:30
Bonjour, j'aimerai enregistrer une variable de type regiondata (System.Drawing.Drawing2D) dans un fichier, et ensuite pouvoir recréer cette variable à partire du fichier.
J'ai essayé plusieurs méthodes, mais aucune ne marchent.
Si vous avez une idée, merci d'avance

<hr />
Afficher la suite 

5 réponses

Messages postés
128
Date d'inscription
mardi 18 décembre 2007
Statut
Membre
Dernière intervention
2 août 2009
2
0
Merci
Salut, peut-être au niveau de la serialisation?
Commenter la réponse de lemmingperceval
Messages postés
27
Date d'inscription
lundi 7 février 2005
Statut
Membre
Dernière intervention
22 avril 2008
0
Merci
Euh, .... dsl je comprend pas ce que tu veux dire.
J'ai réussi à mettre regiondata.data dans un fichier, mais maintenant il me faut faire l'opération inverse, et là, j'arrive pas à mettre le fichier dans le regiondata
j'ai réussi à extraire les données du fichier dans un tableau de byte, mais j'arrive pas à faire regiondata.data=tableaudebyte.
le problème c'est que je sais pas instancier un regiondata (pour la partie "création du fichier" je faisait "DataRegion = formRegion.GetRegionData()")
...

<hr /> AgLS
Commenter la réponse de cs_AgLS
Messages postés
128
Date d'inscription
mardi 18 décembre 2007
Statut
Membre
Dernière intervention
2 août 2009
2
0
Merci
Salut, Ecoute j'ai regardé un peu dans la doc vu que je connais pas du tout cette class, et d'après c'est qui est dit, regionData.Data obtient ou défini un Byte Array, donc normalement ca doit marcher comme tu faits: regiondata.data=tableaudebyte. J'ai pas trop le temps là tout de suite, mais si te poste un coup du code, je regarde ton problème à la première heure demain.
Commenter la réponse de lemmingperceval
Messages postés
339
Date d'inscription
dimanche 26 janvier 2003
Statut
Membre
Dernière intervention
25 mars 2009
4
0
Merci
La méthode de bourrin consiste à sérialiser ta classe en binaire dans un stream mémoire, puis d'encoder ce stream en base 64.

Ce qui donne en écriture:
MemoryStream memoryStream = new MemoryStream();
BinaryFormatter binaryFormatter = new BinaryFormatter();
binaryFormatter.Serialize(memoryStream, taclassaserialiser);
string str = System.Convert.ToBase64String(memoryStream.ToArray());

En lecture:
string str = sr.Readline();
byte[] data = Convert.FromBase64String(str);
MemoryStream memoryStream = new MemoryStream(data);
BinaryFormatter binaryFormatter = new BinaryFormatter();
typedelaclasse toto =  (typedelaclasse)binaryFormatter.Deserialize(memoryStream);

voilà.
Commenter la réponse de bubbathemaster
Messages postés
27
Date d'inscription
lundi 7 février 2005
Statut
Membre
Dernière intervention
22 avril 2008
0
Merci
Enfait, mon problème c'est pour instancier une regiondata, je sais pas comment faire car il n'existe pas de constructeur pour cette classe
(pour la partie "création du fichier" je faisait "DataRegion = formRegion.GetRegionData()")

<hr />
Commenter la réponse de cs_AgLS