begin process at 2012 05 29 14:40:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Général

 > 

problème de déplacement à la fin d'un fichier binaire


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

problème de déplacement à la fin d'un fichier binaire

lundi 16 février 2009 à 06:45:45 | problème de déplacement à la fin d'un fichier binaire

bernidupont

Bonsoir,
j'ai essayé de résoudre mon problème, mais je n'ai pas su trouver de solution.
Mon problème est le suivant:
j'ai un fichier binaire dans lequel est enregistré la structure qui est la suivante:

typedef struct
{
   long int clé;
   char nom[31];
   int groupe;
} ELEVE;

lorsque j'ouvre le fichier binaire pour lui rajouter un autre ELEVE ,et que je le lit pour l'afficher,
ça m'affiche seulement la dernière structure ELEVE enregistré!

voici la partie de mon code qui permet d'ecrire sur le fichier binaire:

// on ouvre le fichier binaire en écriture
        FILE * archbin = fopen ( "eleves.dat","wb");
       
        // on déplace le pointeur à la fin du fichier  
        if (!fseek(archbin,0L,SEEK_END)) {       
           if (archbin) {         
              if ( fwrite(&a,sizeof(ELEVE),1,archbin) )
                 printf("eleve enregistree! \n\n");
              else printf ("ERREUR : ecriture impossible! \n");
           }                
           else printf ("ERREUR : ouverture impossible! \n"); 
        }
        else printf ("ERREUR : déplacement impossible!");

Pouvez vous me mettre sur la voie svp, ou me dire d'ou pourrait bien venir le problème?
D'avance merci.
Berni.



lundi 16 février 2009 à 07:08:55 | Re : problème de déplacement à la fin d'un fichier binaire

bernidupont

Petite correction : la structure est présente dans mon programme , et non dans le fichier binaire.
lundi 16 février 2009 à 09:45:34 | Re : problème de déplacement à la fin d'un fichier binaire

ed73

En ouvrant ton fichier ainsi fopen ( "eleves.dat","wb"); tu ramène sa longueur à 0 s'il existait déjà et forcément tu te retrouves avec une seule structure dedans.

Il suffit de l'ouvrir ainsi fopen ( "eleves.dat","w+b"); et ça va régler ton problème. le w+ ne ramène pas la longueur à 0.

lundi 16 février 2009 à 09:59:06 | Re : problème de déplacement à la fin d'un fichier binaire

Pistol_Pete

Salut
Tu peux aussi ouvrir ton fichier comme cela fopen ( "eleves.dat","ab"). Il écrira alors directement à la fin de ton fichier. Plus besoin de fseek ici.
A+

____________________________________________________________________________
Mon site internet :
  
[ Lien ]

lundi 16 février 2009 à 10:12:41 | Re : problème de déplacement à la fin d'un fichier binaire

ed73

Exact Pistol_pete c'est ab ou a+b et pas w+b comme je l'ai écrit un peu vite.

lundi 16 février 2009 à 18:05:34 | Re : problème de déplacement à la fin d'un fichier binaire

bernidupont

Merci beaucoup pour votre super coup de pouce!
Le problème venait bien du "w", qui fallait transformer en "a"!
A très bientôt,
Berni.

pS: encore merci ;-)


Cette discussion est classée dans : fichier, problème, binaire, eleve, archbin


Répondre à ce message

Sujets en rapport avec ce message

Pb de compilation [ par Cyberboy2054 ] Salut J' ai un piti problème de compilation en C++Quand j' ai terminé mon programme (un aplication console)je teste mon programme depuis le compilateu telecharger un fichier [ par Xs ] On fait comment pour telecharger un fichier ?je suppose qu'il faut demander au serveur de l'ouvrir en binaire puis utiliser une boucle du typewhile(!f Problème avec CListBox [ par amel ] Bonjour a tous,Je suis en train de creer une application sous Visual C avec les MFC. J'utilise une CListBox dans laquelle j'affiche une liste d'elemen La valeur 26=0x1A pose un problème de lecture de fichier [ par sengr ] Salut!Jsuis en stage et jsuis pas un AS du dévelopement et ca URGE!J'ai rencontré un BIG problème : le coup du de la valeur 26=0x1A avec les fonctions Données en binaire [ par didrocks ] J'aimerai, à l'instar de denini dans "lire/ecrire fichier texte a plusieurs colonnes" faire un fichier de données dans lequel je pourrai écrire à part problème avec fichiers !!! [ par ben01n ] salut tout le mondeje prog sous linux et j'aurais besoin d'aide pour un de mes programmes dont j'ai déposé la source sous le nom "client-serveur en ud fichier binaire [ par Kywalh ] Salut,comment fait on pour ecrire un tableau de nombres en binaires de 2 colonnes dans un fichier en ayant la meme disposition (cad 2 colonnes) ???Du Lire et ecrire dans un fichier en mode binaire [ par vbnul ] Je cherche comment lire et ecrire dans un fichier en mode binaire car on ne peut lire certains "caracteres" binaires dans les EXE par exemple.qqn pour Transfert d'un ftp (2) [ par header ] Voila le problème :J'ai ouvert un fichier sur un ftp et je me prépare à lire quelques bytes de celui ci. Pourquoi ca marche trés bien avec un fichier raw (urgentissimo) [ par helena123 ] salut les loulous,Je dois écrire un programme qui lit un fichier de type raw.On me dit que le fichier de type .raw est de type binaire et contient l'i


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,498 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales