Bonjour,
Je veux lire des objets de type cMotLst(liste d'objet du type cMots(mots en différentes langues))enregistrées par sérialisation dans des fichiers .Bin.
Voici la classe de base cMotsLst ( Liste d'objets du type cMots)
JE veux relire trois fichiers contenant les données sérialisées
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 <Serializable()> Public Class cMotsLst Inherits ObservableCollection(Of cMotsLst) Public MotLst As New List(Of cMots) Public Sub New(ByVal Name As String) 'Nom de classe _cMotsLstName = Name End Sub Public Property cMotsLstName() As String End Class 'Voici la classe cMots contenant des mots en différentes langues '************************************************************** '* cMots :mots en différentes langues '* cMotLg0 ... cMotLg5= langues fr,Th,Sc,En,Dt,SP '************************************************************** <Serializable()> Public Class cMots Public Sub New() End Sub Public Property MotFr() As String Public Property MotTh() As String Public Property MotThEasy() As String Public Property MotThRoman() As String Public Property MotSc() As String Public Property MotEn() As String Public Property MotDt() As String etc....
Je crée trois objets de type cMotsLst
J'ai crée une Sub LitClasseMOT qui prend en paramétre m par référence un objet cMotLst
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 MOTAbreviation = New cMotsLst("MOTAbreviation") ' MOTAdj = New cMotsLst("MOTAdj") MOTAdvInterConj = New cMotsLst("MOTAdvInterConj")
Lorsque je veux lire un fichier binaire et le mettre dans l'objet MOTAbreviation
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Public myFileStream As Stream Public Sub LitClasseMOT(ByRef m As cMotsLst) Dim dirInfo As New System.IO.DirectoryInfo("../../Lecon/") PathLecon = dirInfo.FullName Dim s As String s = PathLecon & m.cMotsLstName & ".bin" Try If File.Exists(s) Then Dim myFileStream = File.OpenRead(s) Dim deserializer As New BinaryFormatter() deserializer.AssemblyFormat = Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple m = CType(deserializer.Deserialize(myFileStream), cMotsLst) myFileStream.Close() End If Catch ex As Exception MessageBox.Show("Fichier " & s & " introuvable") End Try End Sub
je fais
LE fonction lit les données dans m.lstmot (vu par Debug) mais MOTAbreviation.lstMot n'est pas modifiée
Code : Sélectionner tout - Visualiser dans une fenêtre à part LitClasseMOT(MOTAbreviation)
Pourtant la référence de l'objet est la même.
Merci
Partager