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 :

Conversion d'un objet en tableau de Byte


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 29
    Points : 25
    Points
    25
    Par défaut Conversion d'un objet en tableau de Byte
    Bonjour,

    Je m'arrache les cheveux pour trouver une solution à mon problème : comment transformer de façon simple une variable de type Object en un tableau de Byte ??
    J'ai bien trouvé une solution mais c'est un peu bovin : entre décalages de bits et soustractions j'arrive à extraire chaque octet, mais ça implique que je connaisse le nombre d'octets qui constituent la variable Object...

    Avec Convert ou CByte, j'ai trouvé comment transformer en Byte, mais pas en tableau de Byte...

  2. #2
    En attente de confirmation mail
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Points : 669
    Points
    669
    Par défaut
    Je ne suis pas sur du resultat, mais si ton objet est serializable, tu peux procéder ainsi ...

    Code vb.net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Dim objFormatter As New Runtime.Serialization.Formatters.Binary.BinaryFormatter
    Dim objStream As IO.MemoryStream
    Dim BufferBin As Byte()
     
    ' Sérialization 
    objStream = New IO.MemoryStream
    objFormatter.Serialize(objStream, MonObjet)
     
    ' Récupération du buffer d'octet
    BufferBin = objStream.GetBuffer


  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 29
    Points : 25
    Points
    25
    Par défaut
    Merci, je vais essayer. En fait, MonObjet sera soit un Integer, un Char ou un Byte. Du moins pour le moment. Il se peut que j'ai par la suite d'autres types à écrire.

    Par contre, c'est quoi, au juste, la sérialisation ?

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 29
    Points : 25
    Points
    25
    Par défaut
    Je viens d'essayer, et voilà ce que ça me donne :
    - Dans le cas où MonObjet est un Integer, valeur = 5
    - Théoriquement, Tab as Byte() devrait être :
    Tab(0) : valeur = 0
    Tab(1) : valeur = 0
    Tab(2) : valeur = 0
    Tab(3) : valeur = 5
    - Or je me retrouve avec 256 éléments dans Tab, avec :
    Tab(0) : valeur = 0
    Tab(1) : valeur = 1
    Tab(2) : valeur = 0
    Tab(3) : valeur = 0
    Tab(4) : valeur = 0
    Tab(5) : valeur = 255...

    C'est normal, tout ça ?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 29
    Points : 25
    Points
    25
    Par défaut
    J'ai trouvé une autre solution plus simple et a priori approprié à mon souci : System.BitConverter.GetBytes

    Quand MonObjet est un Integer, ça marche impécable. Par contre, pour un Char ou un Byte, le résultat est un tableau de 2 éléments de Byte... Pourquoi-t-est-ce ?

    Je crois que je vais faire une surcharge : une implémentation pour les entiers, et une autre, sans conversion, pour les char et les bytes.

  6. #6
    En attente de confirmation mail
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Points : 669
    Points
    669
    Par défaut
    Oups désolé.
    J'ai mal interprété la question.

    Je pensais que tu voulais convertir un objet en tableau de bit pour pouvoir le stocker dans un champ binaire de base de données.

    Apparement ce n'est pas le cas.

Discussions similaires

  1. Conversion String en tableau de Byte
    Par riete dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 05/09/2007, 10h27
  2. tableau de byte + conversion hexa
    Par andromeda dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 20/07/2007, 09h30
  3. conversion d'un tableau de bytes en string
    Par prady92 dans le forum VB.NET
    Réponses: 3
    Dernier message: 16/03/2007, 14h47
  4. convertir un objet en tableau de byte
    Par hammag dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 12/10/2006, 14h12
  5. [C# 2.0] Conversion hexadécimale dans un tableau de byte[]
    Par cyllix dans le forum Windows Forms
    Réponses: 3
    Dernier message: 18/08/2006, 13h29

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