Ecrire bit à bit dans un fichier txt

Ecrire bit à bit dans un fichier txt - C++ - Programmation

Marsh Posté le 26-02-2004 à 19:42:29    

Voila je suis novice en C++, j'utilise visual et je suis en train de coder un compresseur/decompresseur LZW. Pour cela, je dois creer un fichier (compressé) et donc le remplir bit à bit. En effet, je dois y rentrer des char codés sur 8 bits (les courants) ms aussi des symboles codés sur 9bits et plus.. si vous voyez comment ajouter un bit par exemple devant le code d'un char 8bits, j'aimerais bien votre aide.. :p
voila merci :hello:

Reply

Marsh Posté le 26-02-2004 à 19:42:29   

Reply

Marsh Posté le 26-02-2004 à 19:52:48    

Impossible d'écrire 'bit à bit' dans un fichier, le minimum est un byte. Il te faut une couche supplémentaire dans ton code, par ex writeBit(bool) qui stocke les bits que tu lui envoies et écrit un byte dès qu'elle a 8 bits.

Reply

Marsh Posté le 27-02-2004 à 00:35:17    

J'ai rien trouvé sur WriteBit() :( Est-ce que vous pouvez en dire plus svp.. quelle lib inclure ..etc
help help! :hap:

Reply

Marsh Posté le 27-02-2004 à 00:50:28    

youdontcare fait référence à une fonction que tu dois écrire toi même, et il la nomme writeBit(bool). (Elle prend un booleen en paramètre).
 
Tu ne peux écrire qu'octet par octet dans un fichier. L'idée qu'il te suggère est donc de construire ces octets bit à bit. Une fois que tu as construit un octet, tu peux l'écrire dans le fichier.
 
@+


Message édité par Evadream -jbd- le 27-02-2004 à 00:50:41
Reply

Marsh Posté le 27-02-2004 à 00:51:40    

on te dit de l'écrire et de faire une recherche :o

Reply

Marsh Posté le 27-02-2004 à 01:06:38    

ok merci.. en fait il suffit de créer un char initialisé à 00000000, puis de lui ajouter 1 ou 0, puis de faire un décalage à gauche(<< ). On renouvelle 8 fois l'opération pour obtenir un octet que l'on envoie sur le fichier destination..
voila merci pour vos conseils
:D

Reply

Marsh Posté le 27-02-2004 à 01:09:48    

ben oui

Reply

Sujets relatifs:

Leave a Replay

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