IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

"Stocker" un tableau à 2 dimensions [Débutant]


Sujet :

VB.NET

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut "Stocker" un tableau à 2 dimensions
    Bonjour, Bonsoir!

    Voici mon problème :

    Je possède un tableau multidimensionnel, de deux dimensions :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Module Module1
     
    Public MyArray(47, 0) As String
     
    End Module
    Ce tableau est "dynamique", (exemple : MyArray(47, ∞) )

    Et il contient aussi bien des chiffres, que des lettres.

    Voici mon problème :

    J'aimerais que lors de la fermeture de ma form, lors de l'arrêt de mon programme, ce tableau stock ses valeurs quelque part et lors de la re-éxecution de mon programme il les reprennent.

    Une personne dont j'ai oublié le nom (excuse moi) sur le chat du site m'a conseillé d'aller voir du côté de la sérialisation.

    Chose dite chose faite, problème.

    Comment sérialiser un tableau à deux dimensions ?

    J'ai essayé ceci :

    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
     
    Imports System.IO
    Imports System.Runtime.Serialization.Formatters.Binary
    Module Module 1
     
        Public MyArray(47, 0) As String
     
        Public Sub Keep()
            Dim f As New BinaryFormatter()
            Dim fs As New FileStream("File.bin", FileMode.Create)
            f.Serialize(fs, MyArray)
            fs.Close()
        End Sub
     
        Public Sub Going()
            Dim fs As New FileStream("File.bin", FileMode.Open)
            Dim f As New BinaryFormatter
            Dim Dw(,) As String = f.Deserialize(fs)
            fs.Close()
            MyArray = Dw
        End Sub
    End Module
    Mais bien sûr ça ne fonctionne pas :/ Du moins je récupère bien mes informations dans mon fichier mais lorsqu'il s'agit de les récupéré c'est plus complexe.
    J'ai trouvé sur Internet des personnes qui Sérialiser leur tableau à 2 dimensions mais qui ne le stocker pas fin à ce que j'ai cru comprendre.

    Voici le fameux code :

    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
     
    	Imports System.IO
    	Imports System.Runtime.Serialization.Formatters
    	Module Module1
    	    Sub Main()
    	        Dim rnd As New Random
    	        Dim intArr(5, 5) As Int32
    	        For i As Int32 = 0 To 5
    	            For j As Int32 = 0 To 5
    	                intArr(i, j) = rnd.Next(10, 100)
    	            Next
    	        Next
                    Dim f As New Binary.BinaryFormatter()
    	        Dim ms As New MemoryStream()
    	        f.Serialize(ms, intArr)
    	        Dim byArr As Byte() = ms.ToArray()
    	        Dim str_b64 As String = Convert.ToBase64String(byArr)
    	        Dim ms2 As New MemoryStream(Convert.FromBase64String(str_b64))
    	        Dim intArr2(,) As Int32 = f.Deserialize(ms2)
    	    End Sub
    	End Module
    Source : http://www.dreamincode.net/forums/to...nsional-array/

    Je viens donc ici vous posez ces questions :

    Sérialiser/De-sérialiser mon tableau est - elle la meilleur solution ?

    Dois-je remplacer mon tableau par une classe ?

    Binaire ou XML ? si il y a Sérialisation/De-sérialisation.

    J'espère avoir été assez clair/compréhensible ^^'

    Merci.

    Bonne journée, soirée, nuitée...
    Dernière modification par DotNetMatt ; 29/08/2015 à 15h46. Motif: Orthographe (titre)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 23
    Dernier message: 21/08/2003, 07h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo