Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1996 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Ecriture d'un entier "en dur"

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Ecriture d'un entier "en dur"

n°1632184
Ccedille
Posté le 27-10-2007 à 20:44:28  profilanswer
 

Bonjour tout le monde ,
 
Je cherche à écrire un entier au début d'un fichier :
( dans le contexte , j'essaie d'effectuer un index pour chaque fichier )
 
Afin d'écrire un programme pour pouvoir lire cette index , il faut que je puisse écrire l'entier dans le fichier.
J'ai essayé de la facon suivante ( IND étant la valeur de l'index )

Citation :


f_wr = fopen(path,"w+" );
  fprintf(f_wr,"%4d",ind);
  setIndex(fd1,ind);
  fclose(f_wr);


 
Mais on se rend rapidement compte qu'il est ensuite difficile de récuperer le chiffre ,
exemple : ind = 12000
Bien qu'étant un entier , cette valeur représente 5 octets dans le fichier , je vais perdre le dernier 0...
Y aurait il une façon de coder la séquence de bits dans le fichier et de la convertir ensuite??
 
J'aimerais que quelqu'un éclaire ma lanterne :
Comment écrire tous mes entiers de la même façon , et ainsi pouvoir les récuperer ?
 
Merci d'avoir pris le temps de lire le message
 

mood
Publicité
Posté le 27-10-2007 à 20:44:28  profilanswer
 

n°1632191
matafan
Posté le 27-10-2007 à 21:43:28  profilanswer
 

Tu peux écrire ton entier en binaire au lieu de l'écrire en ascii. Ou alors débrouille toi pour écrire un nombre de charactères ascii suffisant pour couvrir tous les entiers (10 si tes entiers font 32 bits).

n°1632268
Emmanuel D​elahaye
C is a sharp tool
Posté le 28-10-2007 à 11:29:22  profilanswer
 

Ccedille a écrit :

Je cherche à écrire un entier au début d'un fichier :


Texte, binaire, taille fixe ? Il faut être précis dans la spécification d'un problème, sinon, on a vite fait de faire n'importe quoi...
 
 


---------------
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/
n°1632639
Ccedille
Posté le 29-10-2007 à 03:08:42  profilanswer
 

Emmanuel Delahaye a écrit :


Texte, binaire, taille fixe ? Il faut être précis dans la spécification d'un problème, sinon, on a vite fait de faire n'importe quoi...
 
 


 
L'idée serait de l'écrire en binaire , tout en étant capable de lire ce nombre binaire ensuite.

n°1632688
matafan
Posté le 29-10-2007 à 09:35:27  profilanswer
 

Pour écrire :

Code :
  1. int ind = 12000;
  2. fwrite(&ind,  sizeof ind,  1,  fd1);


 
Pour lire :

Code :
  1. int ind;
  2. fread(&ind,  sizeof ind,  1,  fd1);


 
En supposant dans les deux cas que tu es au début de fd1. Tu tu n'es pas au début, place toi en début de fichier avec rewind().
 
Edit : et en supposant aussi que la portabilité (taille des int, endianness...) n'est pas un problème, c'est-à dire que tu lis et écrit le fichier sur des architectures qui utilisent les même int.


Message édité par matafan le 29-10-2007 à 09:37:54

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Ecriture d'un entier "en dur"

 

Sujets relatifs
fermeture de session ->écriture dans une base de donnée mysql[Turbo Pascal 7] Optimisation trunc() et écriture dans le code
Demander à l'utilisateur d'entrer un entierprobleme Compression d'entier, de texte
[Perl] lecture/écriture simultanées sur une socket[HTML/CSS]écriture en gras
remplacer un nom dans le code entierEcrire un entier sous la forme d'un double
[Algo]Combinaison d'une liste d'entierupload de plusieurs image + ecriture dans une bdd
Plus de sujets relatifs à : Ecriture d'un entier "en dur"


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR