begin process at 2012 02 09 21:57:17
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Base de données

 > 

Autre

 > 

supprimer dans un fichier


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

supprimer dans un fichier

mercredi 20 août 2008 à 20:59:26 | supprimer dans un fichier

juju0612

donc voila mon programme fais une gestion d'un club de foot!!donc ici c pour supprimer des joueurs.
tout marche sauf que j'ai un probleme avec ma fonction supprimer
voila donc ma fonction doit demander quel nom doit etre supprimer et le trouver (sa sa marche)puis je demande si c la bonne personne et la si je tape O ou o le nom ainsi que toute ses infos doivent se supprimer(mais sa sa marche pas)

est ce que vous pouvez m'aider? merci d'avance de prendre quelque minute pour moi et mon programme.
voila ma fonction.

 void supression()
{

    titre();
  printf("\n suppression\n ");
  struct enreg fiche;
  struct tmp TMP;
  FILE *f;
  FILE *tp;
  char n[30],rep;
  printf("\nNom a supprimer :");
  fflush(stdin);
  gets(n);
  strlwr(n);
  f=fopen("joueurs.dat","r+b");
  tp=fopen("temp.dat","a+b");

   if(f!=NULL)
  { fread(&fiche,sizeof(fiche),1,f);
    { if(strcmpi(fiche.nom,n)==0)
  { printf("\nnom : %s",fiche.nom);
      printf("\nprenom : %s",fiche.prenom);
      printf("\nposte : %s",fiche.poste);
      printf("\nEst-ce la personne que vous cherchez ?");
      scanf(" %c",&rep);
      if(rep=='O'||rep=='o')
        while(!feof(f))
      {
          strcpy(TMP.categorie,fiche.categorie);
          strcpy(TMP.nom,fiche.nom);
          strcpy(TMP.prenom,fiche.prenom);
          strcpy(TMP.datenais,fiche.datenais);
          strcpy(TMP.pied,fiche.pied);
          strcpy(TMP.numero,fiche.numero);
          strcpy(TMP.rue,fiche.rue);
          strcpy(TMP.numeromaison,fiche.numeromaison);
          strcpy(TMP.codepostal,fiche.codepostal);
          strcpy(TMP.poste,fiche.poste);

          fwrite(&TMP,sizeof(TMP),1,tp);
       }
          fread(&fiche,sizeof(fiche),1,f);
       fseek(f,-1L*sizeof(fiche),SEEK_CUR);
       fwrite(&fiche,sizeof(fiche),1,f);
      } //fin de test si bonne personne

       }

 }
   fclose(f);
   fclose(tp);

  if(!feof(f))
  {
   remove("joueurs.dat");
   rename("temp.dat","joueurs.dat");
  }
 }

jeudi 21 août 2008 à 10:04:37 | Re : supprimer dans un fichier

fregolo52

Membre Club

Si ton code est complet, il est bizarre, tu n'as pas de boucle while pour rechercher la personne en question.

Ton 'if' suivi de 'while' sans accolade dans les 2 me parait dangeureux, assure le coup en mettant les accolades.

A la fin fread fseek et fwrite servent à quoi ? tu passes par un fichier temporaire, donc quel est l'intéret de modifier le fichier d'origine ?
jeudi 21 août 2008 à 11:26:43 | Re : supprimer dans un fichier

juju0612

donc voila merci de ton aide j'ai mis une boucle while j'ai mis les acolades et supprimer fseek et fxrite à l fin. mais cela donne le même resusltat.et stoppe apres le if O ||o   .Et je ne vois se qu'il cloque!. quand je tape sur O||o il arrete sa recherche de nom et jusqu'a la fin du fichier vas copier dans TMP .
qu'est ce qu'il ne va pas ?
merci encore fregolo52

void supression()
{

    titre();
  printf("\n suppression\n ");
  struct enreg fiche;
  struct tmp TMP;
  FILE *f;
  FILE *tp;
  int sw=0;
  char n[30],rep;
  printf("\nNom a supprimer :");
  fflush(stdin);
  gets(n);
  strlwr(n);
  f=fopen("joueurs.dat","r+b");
  tp=fopen("temp.dat","a+b");

  if (f==NULL)
    printf("le fichier n'existe pas");
  else
  { fread(&fiche,sizeof(fiche),1,f);
     while(!feof(f)&&(sw==0))
      { if(strcmpi(fiche.nom,n)==0)
   { printf("\nnom : %s",fiche.nom);
       printf("\nprenom : %s",fiche.prenom);
       printf("\nposte : %s",fiche.poste);
       printf("\nEst-ce la personne que vous cherchez ?");
       scanf(" %c",&rep);
       if(rep=='O'||rep=='o')
         {sw=1;
          while(!feof(f))
         {
            strcpy(TMP.categorie,fiche.categorie);
            strcpy(TMP.nom,fiche.nom);
            strcpy(TMP.prenom,fiche.prenom);
            strcpy(TMP.datenais,fiche.datenais);
            strcpy(TMP.pied,fiche.pied);
            strcpy(TMP.numero,fiche.numero);
            strcpy(TMP.rue,fiche.rue);
            strcpy(TMP.numeromaison,fiche.numeromaison);
            strcpy(TMP.codepostal,fiche.codepostal);
            strcpy(TMP.poste,fiche.poste);

            fwrite(&TMP,sizeof(TMP),1,tp);
            }
           fread(&fiche,sizeof(fiche),1,f);

       } //fin de test si bonne personne
      }
     }
  }
   fclose(f);
   fclose(tp);

  if(!feof(f))
  {
   remove("joueurs.dat");
   rename("temp.dat","joueurs.dat");
  }
 }

jeudi 21 août 2008 à 13:06:40 | Re : supprimer dans un fichier

fregolo52

Membre Club

ton "bug" c'est que si la réponse est 'O' ou 'o' tu écrits dans TMP, alors qu'il ne faut pas !!

Fait un fread juste apres sw=1; pour passer direct au suivant.

De plus dans ton code, tu supprimes toutes les personnes avant le nom à supprimer vu que tu sauvegardes dans TMP qu'a partir du nom recherché.


tu devrais faire :

- ouverture des 2 fichier
fread fichier source
while !feof

  test du nom
  si c'est pas celui qu'on veut
    écrire dans le fichier TMP les donnees
    fread source
  sinon (c'est la personne a supprimer)
    fread fichier source (pour passer tout de suite au suivant)
    tu fais ton while pour tout copier dans TMP
    break (pour sortir du while principal)
  fin si
fin while feof

jeudi 21 août 2008 à 14:56:40 | Re : supprimer dans un fichier

juju0612

lorsque tu dit

test du nom
  si c'est pas celui qu'on veut
    écrire dans le fichier TMP les donnees
    fread source


le test c le IF
je reponds non a la question
ecrire comment avec fwrite??
fread(&fiche,sizeof(fiche),1,f);


break (pour sortir du while principal)

le break je le fais comment un simple acolades suffit non?

merci encore
vendredi 22 août 2008 à 11:44:22 | Re : supprimer dans un fichier

juju0612

deso pour se UP mais là je galére


j'ai reflechie et je dois copier tout se qu'il y a devant le nom et apres le nom!!!

mais c sa que je sais pas faire!!

là je ne copie que se qui a apres seulement(et encore c bug apres la question)

merci a++
samedi 23 août 2008 à 11:24:20 | Re : supprimer dans un fichier

juju0612

bonjour!!
bon ben deso encore mais perso ne sais ressoudre mon probleme

je vois tout plein de personne passer mais personne ne poste.
et une reponse pourrai mettre trés utile.

SVP donc ma fonction supprimer doit demander un nom le trouver et puis copie tout sauf se nom

merci d'avance


Cette discussion est classée dans : supprimer, printf, fiche, tmp, strcpy


Répondre à ce message

Sujets en rapport avec ce message

fonction supprime tous!! [ par juju0612 ] bonjour à tous!!!voila ma fonction supprimer doit supprimer que le nom que je lui donne mais il supprime tous!!et je ne vois pas pourquoi!!comment res supprimer un variable [ par Nagalta ] Bonjour je suis débutant en c++J'ai visiblement un probleme de memory leak dans mon programme.visiblement cela vient du fait que je reatribut des vale demande d'aide (Gestion des fichiers et structures en C) [ par medsky ] Bonjour, Afin de manipuler les fichiers et les structures en C, On m'a demandé de réalisé une application qui cree un fichier pour saisir les inform affichage tableau de jeu [ par adgle ] Bonjour, J'ai un petit souci sur l'affichage d'un programme en langage C : En fait, dès que je rentre un caractère dans une case, celle ci s'agrandit Problème de code (tri et structure) [ par krolis ] Salut tout le monde, je rencontre un problème lors de l'exécution de ce code au niveau du tri par notes. Veuillez m'aidez s'il vous plaît. Merci d'ava Enregister un tableau de structures dans un fichier [ par krolis ] salut tout le monde. Je voudrais savoir comment faire pour enregistrer un tableau de structure dans un fichier. J'ai essayé mais ça marche pas. Veuill Liste chainéés [ par anek971 ] Bonjour a tousEnfaite il y a déà eu un poste sur le site sur ce sujet mais ayant le mm tp a faire je me suis rendu compte ke sa fonction quitter ne ma pkoi c amarche pas !!!!!!!!!!! [ par zebrahead ] j'ai un souci pkoi ca marche paaa,ouinnn, aider moi sivoupléééé,thanks a tous les mecs qui touchent tellement qui sauront trouver la finte,#include#de Assez Urgent problème de gestion dans les fichiers [ par bugs2600 ] Salut,Je suis en train de faire un programme de gestion de fichier mais j'ai un problème pour faire une fonction de suppression des menbres.Voici ce q besoin d'aide : liste chainée [ par SemBy ] salutjutilse une liste chainée pour pouvoir traité une structure.declaration de ma structure :struct etu{ char nom[25]; char prenom[25];


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 0,499 sec (3)

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