SÉRIALISTION - DÉSERIALISATION DE TABLEAUX ET COLLECTIONS

Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 - 4 mars 2010 à 08:03
AlexMS Messages postés 5 Date d'inscription vendredi 27 février 2009 Statut Membre Dernière intervention 10 janvier 2011 - 5 mars 2010 à 10:30
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/51382-serialistion-deserialisation-de-tableaux-et-collections

AlexMS Messages postés 5 Date d'inscription vendredi 27 février 2009 Statut Membre Dernière intervention 10 janvier 2011
5 mars 2010 à 10:30
C'est effectivement une alternative intéressante et surtout plus claire. J'avais essayé de mettre la fonction dans la classe, mais ça me levait une erreur d'instance d'objet.
Merci pour l'exemple.

NB : Le ListView1.Items.Clear() , je n'y avait pas pensé... C'est mieux écrit de cette manière.
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
4 mars 2010 à 08:03
Re, tu aurais pu simplement mettre ta source sur la lamegrid à jour, bon sinon :
'On fait le ménage dans la ListView
ListView1.Items.Clear() suffit ^^

'pour les try/catch voici comment je fais, j'utilise pas de tableau de string, je préfére créer une classe perso qui contient les valeurs typées, cela évite les conversions et c'est plus clair, la fonction ne retourne qu'un true ou false en fonction de la reussite ou pas de la lecture :

Public Function load(ByVal fichier As String) As Boolean
Dim myFileStream As Stream = Nothing

Try
myFileStream = File.OpenRead(fichier)
Dim deserializer As New BinaryFormatter()
Dim lecture As New classe_perso (ex deux string, un integer, trois double)
lecture = CType(deserializer.Deserialize(myFileStream), classe_perso)
myFileStream.Close()

With Me
'renseigne les propriétées de l'objet sérialisé
.Str1 = lecture.Str1
etc....
End With

Return True

Catch e As Exception

Affiche_erreur("erreur d'accés au fichier", e.Message)
Return False

Finally

If Not myFileStream Is Nothing Then myFileStream.Close()

End Try
End Function
Rejoignez-nous