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 :

convertir object en tableau de byte et inversement


Sujet :

VB.NET

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 55
    Points : 43
    Points
    43
    Par défaut convertir object en tableau de byte et inversement
    Salut à tous, tout en dans le titre, j'aimerai savoir comment convertir un object ou une classe personnaliser en un tableau de byte et après pouvoir reconvertir mon tableau en object. Si quelqu'un peut m'aider

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 173
    Points : 25 113
    Points
    25 113
    Par défaut
    runtime.interrop.marshal peut etre

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 55
    Points : 43
    Points
    43
    Par défaut
    merci pour la réponse, j'ai été voir quelque tuto et j'ai fait sa
    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
    27
    28
    29
    30
     
        Public Structure teste
            Public nom As String
            Public prenom As String
        End Structure
        Sub Main()
            Dim ptr As IntPtr
            Dim MTeste As teste
            Dim Mbyte() As Byte
     
            MTeste.nom = "nom"
            MTeste.prenom = "prenom"
     
            ' on converti MTeste en tableau de byte dans Mbyte
            ptr = Marshal.AllocCoTaskMem(Marshal.SizeOf(MTeste))
            ReDim Mbyte(Marshal.SizeOf(MTeste) - 1)
            Marshal.Copy(ptr, Mbyte, 0, Marshal.SizeOf(MTeste))
     
     
            Dim mteste2 As teste
     
            ' on converti Mbyte en structure teste dans mteste2
            Dim MyGC As GCHandle = GCHandle.Alloc(Mbyte, GCHandleType.Pinned)
            mteste2 = CType(Marshal.PtrToStructure(MyGC.AddrOfPinnedObject, GetType(teste)), teste)
            MyGC.Free()
     
            Console.WriteLine(mteste2.prenom)
            Console.ReadKey()
     
        End Sub
    le truc c'est que ma structure mteste2 est vide ou du moin rien n'apparait dans la console, je comprend pas trop pourquoi merci de m'aider

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 173
    Points : 25 113
    Points
    25 113
    Par défaut
    je ne connais pas trop le marsahling, mais à vu de nez du demande juste un espace mémoire de la taille de l'espace mémoire de ta variable, il faut aussi trouver où est l'emplacement mémoire de départ de ta variable à copier

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 154
    Points : 159
    Points
    159
    Par défaut
    Moi je chercherais plutôt du coté de la sérialisation.
    Je pense qu'avant d'être un XML ça doit bien passer par un flux (Stream) que l'on peut, je pense, facilement convertir en tableau de byte.

    Ce n'est qu'une piste, je n'ai rien testé...

    @+

  6. #6
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 55
    Points : 43
    Points
    43
    Par défaut
    j'ai trouver un code de serialisation en byte() et sa marche bien, mais le seul problème c'est quand je désérialise sur une autre aplication, il ne veux pas charger car elle n'a pas le meme nom d'assembly comment on fait pour virer le header lors de la sérialisation?

    voila le code pour ceux que sa intéresse:
    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
     
        'Convert an object to a byte array
        Private Function ObjectToByteArray(ByVal obj As Object) As Byte()
     
            If obj Is Nothing Then
                Return Nothing
            End If
            Dim bf As BinaryFormatter = New BinaryFormatter
            Dim ms As MemoryStream = New MemoryStream
            bf.Serialize(ms, obj)
            Return ms.ToArray
        End Function
        ' Convert a byte array to an Object
        Private Function ByteArrayToObject(ByVal arrBytes As Byte()) As Object
     
            Dim memStream As MemoryStream = New MemoryStream
            Dim binForm As BinaryFormatter = New BinaryFormatter
            memStream.Write(arrBytes, 0, arrBytes.Length)
            memStream.Seek(0, SeekOrigin.Begin)
            Dim obj As Object = CType(binForm.Deserialize(memStream), Object)
            Return obj
        End Function

Discussions similaires

  1. Convertir BitmapImage en tableau de byte en wpf
    Par Invité dans le forum Windows Presentation Foundation
    Réponses: 10
    Dernier message: 11/02/2014, 16h52
  2. WordRec Convertir Word en Tableau de Byte
    Par Vilukariok dans le forum Langage
    Réponses: 6
    Dernier message: 20/09/2011, 14h37
  3. convertir string en tableau de byte
    Par wolfazer dans le forum VB.NET
    Réponses: 3
    Dernier message: 29/10/2007, 08h15
  4. [C#] Convertir un tableau de byte en Image
    Par goulhasch dans le forum ASP.NET
    Réponses: 4
    Dernier message: 24/01/2005, 10h12

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