catamenia
Messages postés119Date d'inscriptionmercredi 15 octobre 2003StatutMembreDernière intervention21 juillet 2009
-
22 nov. 2005 à 20:01
catamenia
Messages postés119Date d'inscriptionmercredi 15 octobre 2003StatutMembreDernière intervention21 juillet 2009
-
22 nov. 2005 à 22:44
bonjour,
J'enregistre des formes géométrique dans un fichier mais je n'arrive pas a savoir quand je charge le fichier a savoir si j'ai fini de desérializer ou non.
Pour le moment je fais cela
IFormatter formatter =
new BinaryFormatter();
FileStream stream =
new FileStream("MyFile.bin", FileMode.Open);
Console.WriteLine("Failed to serialize. Reason: " + e2.Message);
//throw;
}
finally
{
frmDessin.panelDessin.Refresh();
stream.Close();
}
liste est une Arrayliste et frmDessin et ma fenêtre enfant
Pour le moment je sors de ma boucle a cause de l'exception générée lorque j'essais de déserializer une fois que tout est déserializer. Donc j'affiche bien toute mes formes géométrique.
Comment puis faire pour quitter ma boucle sans générer d'exception et apres avoir tous déserializé?
catamenia
Messages postés119Date d'inscriptionmercredi 15 octobre 2003StatutMembreDernière intervention21 juillet 2009 22 nov. 2005 à 21:49
j'ai du mal a comprendre comment me repositionné en debut de flus peut m'aider a sortir de la boule quand j'ai fini de deserializé pour éviter d'essayé de deserializé une fois le fichier lu completement
catamenia
Messages postés119Date d'inscriptionmercredi 15 octobre 2003StatutMembreDernière intervention21 juillet 2009 22 nov. 2005 à 21:58
peut etre que j'ai mal compris la serialisation, en fait si je ne fais pas de boucle je récupère seulement le premier rectangle par exemple. La ma boucle me permet de récupérer tous les rectangle mais j'aimerais bien sortir de ma boucle une fois le fichier completement deserializé et non avec l'exception générée
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 22 nov. 2005 à 22:38
Ok, je pensais que tu avais sérialiser une liste.
Quand tu désérialises, le BinaryFormater va avancer d'objet en object.
Il te suffit donc avant de tenter une nouvelle passe de vérifier que le flux n'a pas été intégalement lut :
do
{
liste.Add(formatter.Deserialize(stream));
}while(stream.Position < stream.Length);