|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
SÉRIALISATION/DÉSÉRIALISATION BINAIRE D'UNE CLASSE
Information sur la source
Description
Création d'une DLL (classe High-Score) avec possibilité de (dé)sérialisation.
Le fichier zip comporte 2 sources :
- la classe HighScore (à compiler dans une bibliotèque de classe). A noter : dans les propiétés de la solution, vous devez laisser vide le "Namespace racine".
- le module (programme principal) qui fait appel à la classe : vous devez importer la classe "HighScore.dll" dans vos références avant de lancer le programme.
Source
- Imports System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
- Imports System.IO
-
- <Serializable()> _
- Public Class HighScore
-
- ' attributs
- Private _pseudo As String
- Private _score As Integer
- Private _reussite As Double
- Private _duree_jeu As TimeSpan
-
- ' propriétés
- Public Property pseudo() As String
- Get
- Return _pseudo
- End Get
- Set(ByVal value As String)
- _pseudo = value
- End Set
- End Property
-
- Public Property score() As Integer
- Get
- Return _score
- End Get
- Set(ByVal value As Integer)
- _score = value
- End Set
- End Property
-
- Public Property reussite() As Double
- Get
- Return _reussite
- End Get
- Set(ByVal value As Double)
- _reussite = value
- End Set
- End Property
-
- Public Property duree_jeu() As TimeSpan
- Get
- Return _duree_jeu
- End Get
- Set(ByVal value As TimeSpan)
- _duree_jeu = value
- End Set
- End Property
-
-
-
- Public Shared Sub Serialize(ByVal struct As HighScore, ByVal fichier As String)
-
- Dim serializer As Runtime.Serialization.Formatters.Binary.BinaryFormatter = _
- New Runtime.Serialization.Formatters.Binary.BinaryFormatter
- Dim stream As FileStream
-
- 'If struct Is Nothing Then Return False
- If Not File.Exists(fichier) Then
- stream = New FileStream(fichier, FileMode.Create)
- Else
- stream = New FileStream(fichier, FileMode.Append)
- End If
-
- serializer.Serialize(stream, struct)
- stream.Close()
-
- End sub
-
-
- Public Shared Function Nb_Enregistrements(ByVal fichier As String) As Integer
-
- Dim deserializer As Runtime.Serialization.Formatters.Binary.BinaryFormatter = _
- New Runtime.Serialization.Formatters.Binary.BinaryFormatter
- Dim stream As FileStream
- Dim result As HighScore
- Dim nb as Integer = 0
-
- If Not File.Exists(fichier) Then
- return -1
- else
- stream = New FileStream(fichier, FileMode.Open)
-
- While True
- Try
- result = deserializer.Deserialize(stream)
- nb += 1
- stream.Flush
- Catch
- Exit While
- End Try
- End While
-
- stream.Close()
- return nb
- End If
-
- End Function
-
-
- Public Shared Function Deserialize(ByVal fichier As String, ByRef t_HS() as HighScore) As Integer
-
- Dim deserializer As Runtime.Serialization.Formatters.Binary.BinaryFormatter = _
- New Runtime.Serialization.Formatters.Binary.BinaryFormatter
- Dim stream As FileStream
- Dim i, nb as Integer
-
- If Not File.Exists(fichier) Then
- return -1
- Else
- Try
- nb = Nb_Enregistrements (fichier)
- ReDim t_HS(nb)
- Catch
- console.Write ("Impossible de déterminer le nombre d'enregistrements.")
- console.ReadKey
- Exit Function
- End Try
-
- stream = New FileStream(fichier, FileMode.Open)
-
- For i=0 to nb-1
- t_HS(i) = deserializer.Deserialize(stream)
- stream.Flush
- Next
-
- stream.Close()
- return nb
- End If
- End Function
-
-
- ' Constructeur
- Public Sub New(ByVal pseudo As String, ByVal score As Integer, _
- ByVal reussite As Double, ByVal duree_jeu as TimeSpan)
- Me._pseudo = pseudo
- Me._score = score
- Me._reussite = reussite
- Me._duree_jeu = duree_jeu
- End Sub
-
- End Class
Imports System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
Imports System.IO
<Serializable()> _
Public Class HighScore
' attributs
Private _pseudo As String
Private _score As Integer
Private _reussite As Double
Private _duree_jeu As TimeSpan
' propriétés
Public Property pseudo() As String
Get
Return _pseudo
End Get
Set(ByVal value As String)
_pseudo = value
End Set
End Property
Public Property score() As Integer
Get
Return _score
End Get
Set(ByVal value As Integer)
_score = value
End Set
End Property
Public Property reussite() As Double
Get
Return _reussite
End Get
Set(ByVal value As Double)
_reussite = value
End Set
End Property
Public Property duree_jeu() As TimeSpan
Get
Return _duree_jeu
End Get
Set(ByVal value As TimeSpan)
_duree_jeu = value
End Set
End Property
Public Shared Sub Serialize(ByVal struct As HighScore, ByVal fichier As String)
Dim serializer As Runtime.Serialization.Formatters.Binary.BinaryFormatter = _
New Runtime.Serialization.Formatters.Binary.BinaryFormatter
Dim stream As FileStream
'If struct Is Nothing Then Return False
If Not File.Exists(fichier) Then
stream = New FileStream(fichier, FileMode.Create)
Else
stream = New FileStream(fichier, FileMode.Append)
End If
serializer.Serialize(stream, struct)
stream.Close()
End sub
Public Shared Function Nb_Enregistrements(ByVal fichier As String) As Integer
Dim deserializer As Runtime.Serialization.Formatters.Binary.BinaryFormatter = _
New Runtime.Serialization.Formatters.Binary.BinaryFormatter
Dim stream As FileStream
Dim result As HighScore
Dim nb as Integer = 0
If Not File.Exists(fichier) Then
return -1
else
stream = New FileStream(fichier, FileMode.Open)
While True
Try
result = deserializer.Deserialize(stream)
nb += 1
stream.Flush
Catch
Exit While
End Try
End While
stream.Close()
return nb
End If
End Function
Public Shared Function Deserialize(ByVal fichier As String, ByRef t_HS() as HighScore) As Integer
Dim deserializer As Runtime.Serialization.Formatters.Binary.BinaryFormatter = _
New Runtime.Serialization.Formatters.Binary.BinaryFormatter
Dim stream As FileStream
Dim i, nb as Integer
If Not File.Exists(fichier) Then
return -1
Else
Try
nb = Nb_Enregistrements (fichier)
ReDim t_HS(nb)
Catch
console.Write ("Impossible de déterminer le nombre d'enregistrements.")
console.ReadKey
Exit Function
End Try
stream = New FileStream(fichier, FileMode.Open)
For i=0 to nb-1
t_HS(i) = deserializer.Deserialize(stream)
stream.Flush
Next
stream.Close()
return nb
End If
End Function
' Constructeur
Public Sub New(ByVal pseudo As String, ByVal score As Integer, _
ByVal reussite As Double, ByVal duree_jeu as TimeSpan)
Me._pseudo = pseudo
Me._score = score
Me._reussite = reussite
Me._duree_jeu = duree_jeu
End Sub
End Class
Conclusion
Cette source fait suite à celle-ci : http://www.vbfrance.com/codes/SERIALISATION-DESERIALISATION-STRUCTURE_41077.aspx
Fichier Zip
Sources du même auteur
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Enregistrement structure dans fichier binaire en .Net [ par Djin2004 ]
Bonjour,Je dispose d'une structure contenant environ 150 variables et j'aimerais savoir s'il est possible en VB.net de l'enregistrer en une seule fois
fichier binaire [ par taghzou ]
salut tous le monde, j'ai un fichier binaire ,mais le probleme j ai pas la structure utilisé comment faire pour generer la structure pour pouvoir
[vb.net]Fichier binaire et structure [ par spycko ]
Salutj'ai créer une structure (T_FILEHST) qui corespont à la strucure de mon fichier binaireet je voudrez mettre le contenu de mon fichier d
Structure d'un fichier binaire? [ par pinje ]
Bonjour a tous,J'aimerais lire un fichier binaire contenant les resultats d'un calcul, or je ne connais pas a l'avance sa structure... Est ce qu'il es
lire 4 bytes dans un fichier binaire [ par ravachol ]
bonjour a tous,j'ai un fichier binaire ou il y a a l'adresse 0x000E 4 bytes qui donne un entier normalement(voir image)moi je lit le fichier comme ça
Comparaison entre deux bases de données ayant la même structure [ par lindahaddad ]
Bonjours,J'ai un fichier saisie en CSpro3.3 ( un ensemble de questionnaires (1500 qs) ce fichier peut etre transferer à un fichier texte) je veut fa
Afficher un fichier pdf en passant son binaire [ par tabarrant ]
Salut tous le monde, Voila je vous explique mon problème. On a un serveur avec plein de fichier en pdf; donc on y fait des recherche et importation
.net ouverture de fichier binaire [ par yvesyves ]
Slt, je cherche à ouvrir dans vb2005 à ouvrir un fichier en mode binaire. Mais mon problème le plus important est de savoir comment on enregistre des
Lire des nombres dans un fichier binaire [ par rolcos ]
Bonjour à tous, Avec VB6, comment faire pour afficher une donnée (exemple 414F) lue dans un fichier binaire. 414F ne sont pas les caractères A et O,
Lire un Fichier Binaire [ par dbx99 ]
Bonjour,je suis un développeur débutant !Mon problème est le suivant :Je veux ouvrir un fichier (.mp3) en mode binaire pour en extraire
|
Téléchargements
Logiciels à télécharger sur le même thème :
|