Enregistrer une variable dans un fichier

cs_AgLS Messages postés 27 Date d'inscription lundi 7 février 2005 Statut Membre Dernière intervention 22 avril 2008 - 12 mars 2008 à 17:06
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 />

5 réponses

lemmingperceval Messages postés 128 Date d'inscription mardi 18 décembre 2007 Statut Membre Dernière intervention 2 août 2009 6
12 mars 2008 à 17:29
Salut, peut-être au niveau de la serialisation?
0
cs_AgLS Messages postés 27 Date d'inscription lundi 7 février 2005 Statut Membre Dernière intervention 22 avril 2008
12 mars 2008 à 18:26
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
0
lemmingperceval Messages postés 128 Date d'inscription mardi 18 décembre 2007 Statut Membre Dernière intervention 2 août 2009 6
12 mars 2008 à 19:45
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.
0
bubbathemaster Messages postés 339 Date d'inscription dimanche 26 janvier 2003 Statut Membre Dernière intervention 25 mars 2009 4
13 mars 2008 à 17:20
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à.
0

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

Posez votre question
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
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 />
0
Rejoignez-nous