Ecrire en binaire dans un fichier...

Ecrire en binaire dans un fichier... - C - Programmation

Marsh Posté le 17-03-2006 à 13:28:10    

Bonjour tout le monde,
 
Voila j'ai un probleme pour écrie dans un fichier:
 
en fait je dois créer un fichier à partir de son code binaire: j'ai un fichier txt qui contient des 0 et des 1 qui constituent mon fichier d'origine et je dois donc lire ce fichier txt et créer mon fichier binaire...
 
J'ai donc ouvert mon fichier en "wb"... mais je n'arrive pas du tout à faire la suite... si quelqu'un peut juste m'aiguiller un peu ça serait vraiment cool !
 
Vous l'aurez compris je suis un débutant!
 
Merci

Reply

Marsh Posté le 17-03-2006 à 13:28:10   

Reply

Marsh Posté le 17-03-2006 à 14:10:59    

si j'ai bien compris, tu veux lire des séries de 8 caractères '0' ou '1' dans ton fichier texte, et les convertir en octets que tu dois écrire dans ton fichier binaire ?
 
tu peux te faire une fonction de conversion à qui tu passes un tableau de 8 caractères et qui te renvoit l'octet correspondant :

Code :
  1. unsigned char conv( char* txt )
  2. {
  3.   unsigned char c=0;      // l'octet qui sera renvoyé
  4.   unsigned char bit=0x1;  // bit de poids le plus faible ; par la suite, 'bit' contiendra le bit de poids courant
  5.   int i;
  6.   for( i=7 ; i>=0 ; --i )
  7.     {
  8.       if( txt[i]=='1' )   // on suppose que txt ne contient que des '0' ou des '1'
  9.         c |= bit;         // on ajoute le bit courant
  10.       bit = bit<<1;       // on décale d'un cran
  11.     }
  12.   return c;
  13. }


 
tu peux aller voir sur la page d'Emmanuel Delahaye : il me semble qu'il y a une bibliothèque de fonctions de manipulations de bits.

Reply

Marsh Posté le 17-03-2006 à 14:20:53    

En fait est-ce possible d'écrire bit à bit??? je vais aller voir la page que tu m'as donné. Merci
 
Y'a un truc dont je ne suis pas sur: est-ce que si j'écris dans mon fichier binaire la valeur du caractère 'a' et que je l'ouvre avec notepad, est-ce que ça va afficher a?

Reply

Marsh Posté le 17-03-2006 à 14:26:30    

un char est codé avec CHAR_BIT bits, pas 8

Reply

Marsh Posté le 17-03-2006 à 14:31:23    

ojou a écrit :

En fait est-ce possible d'écrire bit à bit???


nan

Reply

Marsh Posté le 17-03-2006 à 14:35:27    

ben mince... donc le mieux c'est de convertir mes 8bits en caractères et d'écrire "normalement" dans le fichier.

Reply

Marsh Posté le 17-03-2006 à 14:37:08    

ojou a écrit :

ben mince... donc le mieux c'est de convertir mes 8bits en caractères et d'écrire "normalement" dans le fichier.


 
Je ne comprends pas ce que tu essaies de faire.
 
Le mieux c'est d'écrire ton caractère dans le fichier. Pourquoi t'embêter avec la façon dont ton caractère est codé ? Surtout qu'il n'est peut-être pas sur 8 bits...

Reply

Marsh Posté le 17-03-2006 à 14:49:44    

Bon c'est bon, je cherchais "un peu" trop compliqué. En gros je vais récupérer uhn fichier contenant des 0 et 1... je lis les 8 premiers et les convertis en caracteres pour les écrire dans mon nouveau fichier.
 
Merci de votre aide. Si vous avez tout de meme quelques conseils n'hésitez pas.

Reply

Marsh Posté le 17-03-2006 à 14:55:14    

ué fais une sorte de buffer de sortie

Reply

Marsh Posté le 17-03-2006 à 14:55:31    

skelter a écrit :

un char est codé avec CHAR_BIT bits, pas 8


Je savais pas... merci :jap:

Reply

Marsh Posté le 17-03-2006 à 14:55:31   

Reply

Marsh Posté le 17-03-2006 à 15:41:12    

ojou a écrit :

En fait est-ce possible d'écrire bit à bit???


Non. L'unité est le byte (char en C, soit 8-bit minimum).

Citation :

Y'a un truc dont je ne suis pas sur: est-ce que si j'écris dans mon fichier binaire la valeur du caractère 'a' et que je l'ouvre avec notepad, est-ce que ça va afficher a?

Oui.
 
http://mapage.noos.fr/emdel/notes.htm#fichiers
 
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 17-03-2006 à 15:42:07    

ojou a écrit :


Voila j'ai un probleme pour écrie dans un fichier:
 
en fait je dois créer un fichier à partir de son code binaire: j'ai un fichier txt qui contient des 0 et des 1 qui constituent mon fichier d'origine et je dois donc lire ce fichier txt et créer mon fichier binaire...
 
J'ai donc ouvert mon fichier en "wb"... mais je n'arrive pas du tout à faire la suite... si quelqu'un peut juste m'aiguiller un peu ça serait vraiment cool !
 
Vous l'aurez compris je suis un débutant!


Montre ton code. On ne sait pas ce que tu sais.
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 17-03-2006 à 15:58:24    

Non mais c'est bon, pas besoin de continuer ce topic. Merci de votre aide, ça devrait aller. si j'ai d'autres probèmes je vous le ferai savoir.
 
Merci

Reply

Sujets relatifs:

Leave a Replay

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