[lamegrid] sérialisation - déserialisation

Description

Classe permettant la sérialisation - désérialisation d'une LameGrid. Accompagnée d'un exemple d'utilisation (zip)

Source / Exemple :


Option Strict On
Option Explicit On
Imports System.IO
Imports System.Runtime.Serialization.Formatters.Binary

Public Class Serial_Deserial_LameGrid
    Public X_ As Integer
    Public Y_ As Integer
    Private _Grille(X_, Y_) As String

    Public Property grille() As Array
        Get
            grille = _Grille
        End Get
        Set(ByVal value As Array)
            _Grille = CType(value, String(,))
        End Set
    End Property

    Public Sub SerialiseLameGrid(ByVal path As String, ByVal NbLigne As Integer, _
                                 ByVal NbColonne As Integer, ByVal Grille(,) As String, _
                                  ByVal ControlLG As LameGrid.Grid)

        Dim LeFlux As Stream = File.Create(path) 'préparation du flux
        Dim serializer As New BinaryFormatter
        For x = 0 To NbLigne - 1 'Pour chaque ligne
            For y = 0 To NbColonne - 1 'Pour chaque colonne
                Grille(x, y) = ControlLG(x, y).Text 'on remplit un tableau avec la lamegrid
                Me._Grille = Grille 'on affecte le tableau à l'objet grille
            Next
        Next
        serializer.Serialize(LeFlux, Me._Grille) 'on serialise
        LeFlux.Flush()
        LeFlux.Close()
        LeFlux.Dispose()
    End Sub
    Public Sub DeserialiseLamegrid(ByVal path As String, ByVal NbLigne As Integer, _
                                   ByVal NbColonne As Integer, ByVal Grille(,) As String, _
                                    ByVal ControlLG As LameGrid.Grid)

        Dim LeFlux As Stream = File.OpenRead(path) 'on prépare le flux
        Dim deserializer As New BinaryFormatter

        Me._Grille = CType(deserializer.Deserialize(LeFlux), String(,)) 'on deserialise le fichier dans l'object grille
        Grille = CType(Me._Grille, String(,)) 'on met l'objet grille dans un tableau

        For x = 0 To X_
            For y = 0 To Y_
                ControlLG(x, y).Text = Grille(x, y) 'on remplit la lamegrid depuis le tableau
            Next
        Next
        ControlLG.Refresh()

        LeFlux.Close()
        LeFlux.Dispose()
    End Sub
End Class

Conclusion :


Malgré quelques applications à mon actif, c'est ma première source déposée sur codes-sources.com. J'accepte les critiques et les commentaires mais soyez indulgents ;)

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.