|
|
|
|
void supprimer_eleve()
{
char choix_supp;
int seleve_temp=0;
int trouve=0;
system("cls");
printf("\n----------------------------------------------------------------------------\n\n\n");
printf("\t\t\t\tSUPPRESSION ELEVE\n");
printf("\n----------------------------------------------------------------------------\n\n\n");
consultation_eleve();//on affiche la consultation
/*
On ouvre les 2 fichiers
fichier1_eleve en mode lecture uniquement
fichier2_eleve en mode ecriture en fin de fichier
*/
fichier_eleve= fopen("fichier1_eleve","r");
Nouveau_fichier_eleve=fopen("fichier2_eleve","a");
flushall();
printf("\nSaisir le numero de l'eleve a supprimer : ");
scanf("%d",&seleve_temp);
system("cls");
//tant qu'on lit des eleves dans le fichier
while(fread(&seleve,sizeof(seleve),1,fichier_eleve)!=0)
{
if (seleve.identifiant == seleve_temp )//si le numero saisi est dans le fichier
{
trouve=1;
printf("\n Nom : %s",seleve.nom);
printf("\n Prenom: %s", seleve.prenom);
printf("\n Classe : %s",seleve.classe);
printf("\n Date de naissance : %s",seleve.date_naissance);
printf("\n Numero de telephone : %s",seleve.numtel);
printf("\n Mail : %s",seleve.mail);
printf("\n Adresse : %s",seleve.add);
printf("\n Code postal :%s",seleve.cp);
printf("\n Ville : %s",seleve.ville);
printf("\n Date de naissance : %s",seleve.date_naissance);
printf("\n\n\n Voulez vous supprimer cet eleve?(o/n)");
flushall();
choix_supp=(char)getchar();
//si le choix est non
if ((choix_supp=='n')||(choix_supp=='N'))
{
/*
on ecrit sur le nouveau fichier eleve
on ferme les 2 fichiers
et on retourne au menu.
*/
fwrite(&seleve,sizeof(seleve),1,Nouveau_fichier_eleve);
fclose(fichier_eleve);
fclose (Nouveau_fichier_eleve);
menugeneral_eleve();
}
//si le choix est oui, on affiche une phrase de confirmation
if ((choix_supp=='o')||(choix_supp=='O'))
{
printf("\n\n\t\tLa fiche de l'eleve numero %d a ete supprimee!\n",seleve_temp);
}
}//fin du if
//si le numero saisi est different de l'identifiant
if (seleve.identifiant != seleve_temp)
{
//si l'identifiant est superieur
if (seleve.identifiant > seleve_temp )
{
seleve.identifiant = seleve.identifiant - 1;
//on ecrit dans le nouveau_fichier
fwrite (&seleve, sizeof(seleve),1,Nouveau_fichier_eleve);
}
//si l'identifiant est inferieur
if (seleve.identifiant < seleve_temp )
{
//on ecrit dans le nouveau_fichier
fwrite(&seleve,sizeof(seleve),1,Nouveau_fichier_eleve);
}
}
else
{
fwrite(&seleve,sizeof(seleve),1,Nouveau_fichier_eleve);
printf("\nLa fiche de l'eleve numero %d a ete supprimee.\n",seleve_temp);
}
}
}//fin du while
fclose(fichier_eleve);
fclose (Nouveau_fichier_eleve);
remove("fichier1_eleve");
rename("fichier2_eleve","fichier1_eleve");
fichier_eleve= fopen("fichier1_eleve","a");
Nouveau_fichier_eleve=fopen("fichier2_eleve","a");
fclose (fichier_eleve);
fclose (Nouveau_fichier_eleve);
if (trouve==0)
{
printf("\n\t\t\tCet eleve n'est pas dans la base!");
}
printf("\n\n\n\n\t Appuyer sur une touche pour retourner sur le menu eleve...");
getch();//le programme fait une pause jusqu'a ce qu'on appuie sur une touche
}//fin du void
personne sait ?-
(¯`·.¸¸.-> £udo <-.¸¸.·´¯) |
Bonjour, je viens de prendre une conpie de ton message je vais vérifié et t'envoyer mes commentaires sous peu merci de ta compréhensino
Maxime, Technicien en soutient informatique,
Programmeur analyste. QUEBEC, CANADA |
je pourrai jeter un coup d'oeil sur ta fonction ajouter_eleve() stp ? |
salut, c'est pas la peine, j'ai resolu le probleme. Merci
(¯`·.¸¸.-> £udo <-.¸¸.·´¯) |
Tant mieux ...
J'aimerai, si possible, y jeter un coup d'oeil (si ca ne te pose pas de problème) car j'ai des fonctions similaires à coder et j'aimerai voir comment tu as procédé ... D'avance merci ... |
voila comment j'ai fait avec mon nouveau prgramme, l'ancien etait a peu pres similaire
*******************************/
void ajout(FILE *f,char *n)
{
char choix;
system("cls");
printf("AJOUT D'UNE FICHE ELEVE\n\n");
printf("ENTRER LE NOM DU FICHIER DANS LEQUEL VOUS VOULEZ L'INSCRIRE: ");
gets(n);
flushall();
//ouverture en "a+":lecture/écriture d'un fichier existant (mise à jour), pas de création d'une nouvelle version, le pointeur est positionné à la fin du fichier.
f = fopen(n,"a+");
if (f == NULL)
{
printf("\nERREUR, CE FICHIER N'EXISTE PAS\n\n");
}
else
{
do
{
printf("\nSAISIE D'UNE FICHE ?(o/n) ");
choix = (char)getchar();
flushall();
if ((choix=='o')||(choix=='O'))
{
printf("\nNOM: ");
gets(seleve.nom);
printf("PRENOM: ");
gets(seleve.prenom);
printf("CLASSE: ");
gets(seleve.classe);
printf("RETARD(S): ");
scanf("%d",&seleve.retard);
printf("RETENUE(S): ");
scanf("%d",&seleve.retenue);
printf("ABSCENCE(S): ");
scanf("%d",&seleve.abs);
flushall();
fwrite(&seleve,sizeof(seleve),1,f);
}
}//fin do
while((choix=='o')||(choix=='O'));
}//fin else
fclose(f);
}
(¯`·.¸¸.-> £udo <-.¸¸.·´¯) |
Je te remercie; c'est impeccable
Bonne soirée |
Résultats pour modifier un fichier en C
Résultats pour modifier un fichier en C
Résultats pour modifier un fichier en C
Résultats pour modifier un fichier en C