IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

modification dans un fichier sequentiel


Sujet :

C

  1. #1
    Membre à l'essai
    Homme Profil pro
    ecole superieure de technologie
    Inscrit en
    Novembre 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Maroc

    Informations professionnelles :
    Activité : ecole superieure de technologie
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 34
    Points : 24
    Points
    24
    Par défaut modification dans un fichier sequentiel
    bonjour chers programmeurs
    j'ai un probleme en c :
    je dois modifier dans un fichier qui contient des enregistrements :
    matricule
    nom
    prenom
    il faut supprimer tous les enregistrements dont la matricule vaut 8 .
    voila le code que j'ai proposé mais ca marche pas .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    // declaration des bibl
    #include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
    int main(){
        // declaration des var
        char ancien[]= "D:\\inform.txt"; // le fichier a modifier 
        char nouv[] = "D:\\tri.txt" ; // le ficher qui contiendra les nouveaux enregistrements
        char nom[30] , prenom[30] ;
        int matricule ;
        FILE *infile , *outfile ;
        // ouverture de l'ancien fichier en lecture 
    infile=fopen(ancien, "r");
    if(!infile)
    {
                printf("impossible d'ouvrir le fichier %s ", ancien);
                exit(-1);
                }
       // ouverture du nouveau fichier en ecriture 
    outfile=fopen(nouv, "w") ;
    if(!outfile)
    {
                printf("impossible d'ouvrir le fichier %s",nouv);
                exit(-1);
                }
    while(!feof(infile))
    {
       fscanf(infile, " %d %s %s" , &matricule , nom , prenom);
     
       if(matricule!=8)
       {
                      printf("\n");
                       fprintf(outfile , "%d\n%s\n%s" , matricule , nom , prenom);
                       }
                       }
                      fclose(outfile);
                      fclose(infile);
                getch();
                }
    help please

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    pense à utiliser les balises CODE pour que ce soit lisible.
    Quel est le problème ? Le code ne fait pas ce qui est attendu ? Bug à la compilation ? Crash à l'exécution ?

    La seule chose qui me surprend en regardant ça c'est ces 2 lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fscanf(infile, " %d %s %s" , &matricule , nom , prenom);
    qui semble lire le contenu d'une ligne contenant matricule, nom et prénom séparés par un espace.
    Tandis que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fprintf(outfile , "%d\n%s\n%s" , matricule , nom , prenom);
    les enregistre séparés par un retour à la ligne.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre à l'essai
    Homme Profil pro
    ecole superieure de technologie
    Inscrit en
    Novembre 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Maroc

    Informations professionnelles :
    Activité : ecole superieure de technologie
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 34
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par Bousk Voir le message
    Bonjour,

    pense à utiliser les balises CODE pour que ce soit lisible.
    Quel est le problème ? Le code ne fait pas ce qui est attendu ? Bug à la compilation ? Crash à l'exécution ?

    La seule chose qui me surprend en regardant ça c'est ces 2 lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fscanf(infile, " %d %s %s" , &matricule , nom , prenom);
    qui semble lire le contenu d'une ligne contenant matricule, nom et prénom séparés par un espace.
    Tandis que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fprintf(outfile , "%d\n%s\n%s" , matricule , nom , prenom);
    les enregistre séparés par un retour à la ligne.
    Ouais ouais une faute d'inattention , mais ce n'est pas le seul problème

  4. #4
    Membre à l'essai
    Homme Profil pro
    ecole superieure de technologie
    Inscrit en
    Novembre 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Maroc

    Informations professionnelles :
    Activité : ecole superieure de technologie
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 34
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par Bousk Voir le message
    Bonjour,

    pense à utiliser les balises CODE pour que ce soit lisible.
    Quel est le problème ? Le code ne fait pas ce qui est attendu ? Bug à la compilation ? Crash à l'exécution ?

    La seule chose qui me surprend en regardant ça c'est ces 2 lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fscanf(infile, " %d %s %s" , &matricule , nom , prenom);
    qui semble lire le contenu d'une ligne contenant matricule, nom et prénom séparés par un espace.
    Tandis que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fprintf(outfile , "%d\n%s\n%s" , matricule , nom , prenom);
    les enregistre séparés par un retour à la ligne.
    merci infiniment , le problème a été exactement au niveau des retours a la ligne

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.2] Suppression et modification dans un fichier texte
    Par Pape Moussa dans le forum Langage
    Réponses: 1
    Dernier message: 18/01/2010, 09h31
  2. Probleme modification dans un fichier text
    Par zanouba_girl dans le forum Langage
    Réponses: 4
    Dernier message: 10/12/2009, 11h29
  3. modification dans un fichier texte
    Par abdelhamidem dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/10/2008, 17h48
  4. modif dans un fichier xml
    Par calimero91 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 03/01/2008, 08h06
  5. Réponses: 10
    Dernier message: 05/01/2007, 20h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo