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 :

Ecrire en binaire dans un fichier


Sujet :

VB.NET

  1. #1
    Invité
    Invité(e)
    Par défaut Ecrire en binaire dans un fichier
    Bonjour à tous !
    Mon problème, c'est que j'aimerais stocker une suite très volumineuse de nombres binaires dans un fichier !
    L'ennui, c'est que la plus petite valeur en VB.NET, comporte au moins 8 bits !
    Et lorsque j'écris ensuite dans mon fichier, chaque bit est compté comme une Byte (donc 8 bits) !
    Peut-on accéder au code binaire d'un fichier ? Et écrire dans ce code binaire ?
    Par exemple, si je veux entrer cette liste de bits : "0 1 0 0 0 1 1 0 1 0 1 0 1" ?
    Le but, est d'utiliser le moins d'espace possible, tout en mettant le plus d'info possible !

    Writes a one-byte Boolean value to the current stream, with 0 representing false and 1 representing true.
    Même un Boolean fait une Byte, donc 8 bits ! Quel gâchis de bits !
    Peut-on y remédier ? Et se libérer des chaines des méchants Bytes ?
    Merci à vous !

  2. #2
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439
    Par défaut
    Tu peux regrouper plusieurs bits dans un byte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    byte a = 1 << 0 | 0 << 1 | 1 << 2 | 1 << 3 ...

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci, je n'y avais pas pensé
    C'est ce que je vais faire !
    Mais si je comprends bien, dans la lecture binaire d'un fichier, on est obligé de passer par des Bytes ?
    Il n'existe aucun type binaire dans VB.NET (genre Integer mais pour les bits) ?

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 175
    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 175
    Points : 25 116
    Points
    25 116
    Par défaut
    en dessous du byte il y a le boolean

    on peut composer son octet comme on veut comme dit précédemment
    on peut aussi se faire un list(of boolean) pour les bits et écrire une méthode qui le transforme en tableau d'octets (et réciproquement) pour pouvoir interagir avec un fichier

    sinon on peut transformer n'importe quoi en octets, pour les types primitifs il y a la classe bitconverter, pour le reste on peut par une sérialisation

  5. #5
    Invité
    Invité(e)
    Par défaut
    un list(of boolean)
    Ou BitArray si on a pas besoin de List

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1 << 3 Or 0 << 2 Or 1 << 1 Or 0 << 0
    Ça revient à faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1 * (2 ^ 3) Or 0 * (2 ^ 2) Or 1 * (2 ^ 1) Or 0 * (2 ^ 0)
    Non ?

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

Discussions similaires

  1. [WD11] Ecrire au format binaire dans un fichier
    Par Cocrane dans le forum WinDev
    Réponses: 2
    Dernier message: 30/09/2010, 17h48
  2. Réponses: 3
    Dernier message: 03/08/2009, 11h16
  3. Ecrire du code binaire dans un fichier
    Par sorry60 dans le forum Général Python
    Réponses: 10
    Dernier message: 02/04/2009, 20h50
  4. Réponses: 9
    Dernier message: 04/06/2007, 21h44
  5. Réponses: 11
    Dernier message: 13/10/2004, 00h58

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