[C++] Ecriture et lecture de bits dans un fichier

Ecriture et lecture de bits dans un fichier [C++] - Programmation

Marsh Posté le 17-10-2001 à 22:19:37    

J'ai besoin de pouvoir créer un fichier bit après bit, et ensuite de pouvoir le lire bit après bit.
 
D'habitude pour créer un fichier je fais:
 
ofstream file(openpath);
file << "hello" << endl;
file.close();
 
 
Mais avec cela je ne peux pas écrite directement un bit, donc connaissez-vous une solution à mon problème?
 
Merci.

Reply

Marsh Posté le 17-10-2001 à 22:19:37   

Reply

Marsh Posté le 17-10-2001 à 23:39:59    

tu lis et ecris par octet, puis tu traite les bits dans chaque octet pq à ma connaissance, y'a pas de methode pour traiter que des bits...

Reply

Marsh Posté le 18-10-2001 à 07:05:18    

Mais j'ai besoin d'écrire des bits directement moi :cry:

Reply

Marsh Posté le 18-10-2001 à 09:26:26    

Alload,
 
 
wpk, a parfaitement raison. Ton problème n'a pas de solution directe a cause de la granularité. On ne peut manipuler directement un bit.  Même en language machine il n'existe pas de groupes d'instructions qui te permettent de manipuler du bit a bit. Les registres de bit n'existent pas, etc ...
 
Prend l'exemple des disques dur. Tu crois que tu accèdes octet par octet ou long par long a une donnée sur le disque ? Non c'est secteur par secteur, soit 512 octets ! Dans de ce genre de prob toujours voir la granularité, une fois que tu la maitrises bien ça peut même devenir une source d'inspiration pour les otpimisations :)

 

[edtdd]--Message édité par Barbarella--[/edtdd]

Reply

Marsh Posté le 18-10-2001 à 14:26:17    

En fait je veux compresser des données en utilisant l'algorithme d'Huffman, est-ce que quelqu'un a déjà fait un truc de ce genre? Et si oui, pourrait-il me dire comment il a fait?

Reply

Marsh Posté le 18-10-2001 à 14:29:52    

alload> salut :hello:  
 
Huffman c archi classique, fais une recherche sur google tu devrais trouver des tas de sources en C++.
 
Sinon pour ton pb d'écriture bit à bit, tu peux écrire une fonction qui joue le rôle de tampon. Tu lui envoies les bits un par un, elle les stocke et quand elle arrive à 8 bit, elle écrit l'octet correspondant, et elle repart à zéro... utilise des variables static ca pourra t'aider :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed