SÉRIALISTION - DÉSERIALISATION DE TABLEAUX ET COLLECTIONS
Adn56
Messages postés1172Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention28 septembre 2013
-
4 mars 2010 à 08:03
AlexMS
Messages postés5Date d'inscriptionvendredi 27 février 2009StatutMembreDernière intervention10 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.
AlexMS
Messages postés5Date d'inscriptionvendredi 27 février 2009StatutMembreDernière intervention10 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és1172Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention28 septembre 20131 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()
5 mars 2010 à 10:30
Merci pour l'exemple.
NB : Le ListView1.Items.Clear() , je n'y avait pas pensé... C'est mieux écrit de cette manière.
4 mars 2010 à 08:03
'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