Ecriture binaire

cs_maloudre Messages postés 24 Date d'inscription jeudi 23 février 2006 Statut Membre Dernière intervention 5 juin 2006 - 22 mai 2006 à 15:59
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 - 5 juin 2006 à 11:14
bonjour a tous


j aimerai savoir si c possible d ecrire un fichier en binaire qui recopierai le meme fichier mais ecrit en decimal ??


merci maloudre

15 réponses

JejeLand Messages postés 111 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 5 août 2011 1
22 mai 2006 à 16:33
Tu peut préciser...
0
cs_maloudre Messages postés 24 Date d'inscription jeudi 23 février 2006 Statut Membre Dernière intervention 5 juin 2006
22 mai 2006 à 16:58
ok


en faite je suis en train d ecrire un programme en c++ qui m ecrit a la
fin un fichier de nombre qui represente des coordonnees (x y z ) avec
la valeur correspondante ( v )

en faite ce qe je voudrais a la fin c d avoir un fichier encrit en binaire pour etre utilisable par un autre programme.


voila je sais pas si c + claire


merci maloudre
0
24Karas Messages postés 233 Date d'inscription jeudi 4 juillet 2002 Statut Membre Dernière intervention 5 juillet 2008
22 mai 2006 à 20:40
j'ai pas tout compris moi non plus :-)
si tu peux préciser, par exemple donne un extrait du fichier d'entrée, et ce que tu aimerais obtenir en sortie

++
0
cs_maloudre Messages postés 24 Date d'inscription jeudi 23 février 2006 Statut Membre Dernière intervention 5 juin 2006
23 mai 2006 à 10:15
ok


je vais essayer de me re expliquer simplement


voila j ai un fichier texte contenant 4 colonnes de nombres que j aimerai réecrire dans un format binaire

peut etre en modifiant le fprintf qd j ecrit dans le fichier...


j espere qe c + simple comme ca


maloudre
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
23 mai 2006 à 12:52
Si tu veux ecrire en binaire tu peut utiliser la fonction fwrite
0
cs_maloudre Messages postés 24 Date d'inscription jeudi 23 février 2006 Statut Membre Dernière intervention 5 juin 2006
23 mai 2006 à 13:30
salut laurent 1024


est ce qe tu pourrais developper

je l utilise a la place de fprint


voila ma ligne pour ecrire: fprintf ( fp,"%i %i %i ùi\n", x, y, z, val);


merci
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
23 mai 2006 à 14:16
<tt>
int i=2;
<tt>fwrite (&i, sizeof(int), 1, file); // ecriture d'1 entier

int tab[5]={1,2,3,4,5};
fwrite(tab, sizeof(int), 5, file); // ecriture de 5 entiers
++

</tt>
</tt>
0
cs_maloudre Messages postés 24 Date d'inscription jeudi 23 février 2006 Statut Membre Dernière intervention 5 juin 2006
24 mai 2006 à 12:55
salut a tous


voici ce qe j ai ecrit dans mon code :

        fwrite ( &mat, sizeof(long int), 1, myFileFinale);


et le resultat dans mon myFileFinale c tres etrange :

      <soh><nul><nul><nul><soh>


je pense qe c pas du binaire ...


peut etre je me suis tromper!!! aidez moi


merci maloudre
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
24 mai 2006 à 13:09
C'est normal, car quand tu ouvre ton fichier, en mode texte, les octets de l'entier, sont replacer les caracteres correspondants a ces octets. Un entier de 4 octets va etre replacment par 4 caractere dans ton fichier si tu le lis en mode texte. Si tu veux  avoir un fichier avec des 0 et des 1 quand tu l'ouvre en mode texte, il faudrait que tu fasse une conversion d'entier en bits.
++
0
cs_maloudre Messages postés 24 Date d'inscription jeudi 23 février 2006 Statut Membre Dernière intervention 5 juin 2006
24 mai 2006 à 13:19
et c complique de faire cette convertion

je ne voudrais pas trop ralentir mon prog car il met, a mon gout, deja beaucoup de tps ...


ah j oublie apres ce fichier creer doit etre lu par un autre prog

dc il va falloir m aider la dessus aussi..


merci maloudre
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
24 mai 2006 à 13:33
Quelle est la structure exacte du fichier que tu veux obtenir pour l'autre programme ?
Le fwrite va ecrire dans ton fichier des valeurs en binaire et comme c'est du c system c'est rapide, par contre je sais pas si tu autre programme pourra le lire ca dépend, du format qu'il prend en compte.

++
0
cs_maloudre Messages postés 24 Date d'inscription jeudi 23 février 2006 Statut Membre Dernière intervention 5 juin 2006
24 mai 2006 à 17:19
en faite le second  programme lira de la meme maniere ae le 1er ecrit soit en binaire

mais pour l instant je ne sais pas ecrire en binaire

je pense qe une fois qe j aurai compris le principe ca ira mieux je pense


dc pour l instant j aimerai savoir comment ecrire un fichier en binaire
appeler myFinaleFinal.dat et pouvoir verifier ce q il y a ecrit dedans


a+
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
25 mai 2006 à 01:03
Dans ce cas la fonction fwrite et ce qu'il te faut. Dans l'autre programme, tu n'auras qu'a utiliser la fonction fread pour relire un entier.

++
0
cs_maloudre Messages postés 24 Date d'inscription jeudi 23 février 2006 Statut Membre Dernière intervention 5 juin 2006
5 juin 2006 à 11:06
re

est ce qe tu pourrais m expliciter la commande fwrite

car je suis novice dans le c++


merci maloudre
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
5 juin 2006 à 11:14
size_t  fwrite ( const void *
buffer
, size_t
size
, size_t
count
, FILE *
stream
);


* buffer : pointeur sur les données à écrire.

* size : taille en bytesde chaque item.

* count : Nombre d'items (de taille size).

* stream : pointeur sur un fichier.




Valeur de retour .

Nombre d'item ecrit avec succès.


++
0
Rejoignez-nous