Péreniser une liste dans une fichier

geninfo Messages postés 6 Statut Membre -  
mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Excuse moi je suis entrain d'écrire un programme en C sur Visual C++ , et je voudrai péreniser le contenu de ma liste chaine dans un fichier en binaire si vous avez une idée aidez-moi
Merci
Configuration: Windows Vista
Firefox 2.0.0.9

9 réponses

  1. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
     
    pour metre ta liste chaine dans un fichier tu peux utiliser la fonction fwrite et tu ajoute chaque element de la liste comme ça
    0
  2. geninfo Messages postés 6 Statut Membre
     
    merci de ta reponce mais je sais pas comment le faire,t'as pas un exemple complet ?
    0
  3. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
     
    voila un exemple c'est une fonction pour inserer une liste chainee dans un fichier en mode binaire

    void save(struct exemple *p) {
        FILE *f=fopen("fichier","wb");
        while(p){
            fwrite((char *) p,sizeof(struct exemple),1,fichier);
            p=p->suiv;
        }
        fclose(fichier);
    }
    0
  4. geninfo Messages postés 6 Statut Membre
     
    merci pour ta reponce.en fait j ai fait une fonction pour enregistrer dans un fichier binaire et je sais pas cmt faire la fonction pour lire a partir d un fichier binaire c ca ma fonction enregstrer...

    void EcrireFichier(voiture v)
    {
    voiture pc;
    FILE *fichier;
    pc=v;
    fichier=fopen(NomFichier,"w");
    if(v==NULL)
    {
    fclose(fichier);
    }
    while(pc!=NULL)
    {
    fprintf(fichier,"%d\n",pc->puissance);
    fprintf(fichier,"%f\n",pc->prix);
    fprintf(fichier,"%s\n",pc->marque);
    fprintf(fichier,"%s\n",pc->modele);
    pc=pc->suivant;
    }
    fclose(fichier);
    }

    j ai besoin d aide
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
     
    je pense pas que ta fonction pour enregistrer marche essaye plutot ça

    void EcrireFichier(voiture *v) 
    { 
    
    FILE *fichier; 
    
            fichier=fopen("NomFichier","w"); 
        if(fichier==NULL) 
            printf("le fichier n'existe pas\n");
     
    while(v!=NULL) 
        { 
        fprintf(fichier,"%d\n",v->puissance); 
        fprintf(fichier,"%f\n",v->prix); 
        fprintf(fichier,"%s\n",v->marque); 
        fprintf(fichier,"%s\n",v->modele); 
        v=v->suivant; 
        } 
    fclose(fichier); 
    }
    0
  7. geninfo Messages postés 6 Statut Membre
     
    merci de ta reponce.je vais essayer avec ça. tu sait comment lire dans ce fichier binaire
    0
  8. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
     
    c'est presque pareil tu ouvre ton fichier avec le mode "rb" et tu lis ce que tu veux avec la fonction fread
    0
  9. geninfo Messages postés 6 Statut Membre
     
    si tu peux m écrire la fonction ca serai mieux car je suis perdu j ai pas bien compris ses truc pourtant j ai besoin de la fonction lire pour ca

    void EcrireFichier(voiture *v)
    {

    FILE *fichier;

    fichier=fopen("NomFichier","w");
    if(fichier==NULL)
    printf("le fichier n'existe pas\n");

    while(v!=NULL)
    {
    fprintf(fichier,"%d\n",v->puissance);
    fprintf(fichier,"%f\n",v->prix);
    fprintf(fichier,"%s\n",v->marque);
    fprintf(fichier,"%s\n",v->modele);
    v=v->suivant;
    }
    fclose(fichier);
    }
    0
  10. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
     
    pour lire les element du fichier et les metre dans une liste chaine voici une fonction (j'ai pas testé mais ça ressemble a ça)

    void lectureFichier( struct voiture **v)
    {
    
    FILE *fichier;
    
            fichier=fopen("NomFichier","r");
        if(fichier==NULL)
            printf("le fichier n'existe pas\n");
    
    while(!feof(fichier))
        {
        aux=((struct voiture *) malloc(sizeof(struct voiture));
        fscanf(fichier,"%d""%f""%s""%s",&(aux->puissance),&(aux->prix),&(aux->marque),&(aux->modele));
        if(*v==NULL){
            *v=cour=aux;
        }
        else
         {
             cour->suivant=aux;
             cour=cour->suivant;
         }
         cour->suivant=NULL;
        }
    fclose(fichier);
    }
    
    0