Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Modifier un fichier en C

£udo, le jeudi 24 mars 2005 à 20:44:34
salut ,j' ai un souci avec une fonction en C. Mon pg permet la création, l' ajout d'eleve, la modif et la suppression d' un eleve d'une classe. Y a que la suppresion qui marche pas. J'utilise les fichiers et quand je supprime qqn je voudrais qu' il ne m'efface que l'eleve demandé et non tout le fichier. De plus, si par exemple, y a 3 eleves, et que je supprime l'eleve n°2, je voudrais que le n°3 devienne le n°2. J' ai essayé mais ça passe pas, qqn peut m'aider svp?

Merci

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

(¯`·.¸¸.-> £udo <-.¸¸.·´¯)
Répondre à £udo  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
£udo, le vendredi 25 mars 2005 à 20:56:43
personne sait ?-
(¯`·.¸¸.-> £udo <-.¸¸.·´¯)
Répondre à £udo

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
crush_104, le samedi 26 mars 2005 à 00:31:34
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
Répondre à crush_104

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Vivien, le mercredi 6 avril 2005 à 20:36:18
je pourrai jeter un coup d'oeil sur ta fonction ajouter_eleve() stp ?
Répondre à Vivien

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
£udo, le mercredi 6 avril 2005 à 21:28:17
salut, c'est pas la peine, j'ai resolu le probleme. Merci

(¯`·.¸¸.-> £udo <-.¸¸.·´¯)
Répondre à £udo

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Vivien, le mercredi 6 avril 2005 à 21:48:34
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 ...
Répondre à Vivien

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
£udo, le mercredi 6 avril 2005 à 22:41:47
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 <-.¸¸.·´¯)
Répondre à £udo

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 Vivien, le mercredi 6 avril 2005 à 23:48:45
Je te remercie; c'est impeccable
Bonne soirée
Répondre à Vivien

Résultats pour modifier un fichier en C

Modifier fichier CHR bloquant utilisation log (Résolu) Bonjour, Je recherche des solutions pour modifier (decompiler? desassembler?..) un fichier avec extension .chr qui contient des instructions de date limite d'utilisation d'un logiciel. Ce fichier contient également des instructions sur les... www.commentcamarche.net/forum/affich-2916070-modifier-fichier-chr-bloquant-utilisation-log
Fichier CSV Format CSV Un fichier CSV est un fichier tableur, contenant des données sur chaque ligne séparés par un caractère de séparation (généralement une virgule ou un point-virgule). Comment lire un fichier CSV ? Il peut être lu avec un tableur tel que... www.commentcamarche.net/contents/fichier/csv.php3
Option d'affichage des dossiers et fichiers cachés disparue Sous Windows XP, il est possible que vous perdiez l'option qui vous permet d'afficher les dossiers et les fichiers cachés. Ceci est généralement dû à des modifications dans le registre causées par un virus ou bien un logiciel malveillant sur votre... www.commentcamarche.net/faq/sujet-10980-option-d-affichage-des-dossiers-et-fichiers-caches-disparue

Résultats pour modifier un fichier en C

[Windows XP] Afficher les extensions et les fichiers cachésPour afficher les extensions Solution simple Solution avec le registre Pour afficher les fichiers cachés Pourquoi afficher les extensions ? Lorsque vous ne voyez pas les extensions, un fichier infecté peut vous paraître inoffensif,... www.commentcamarche.net/faq/sujet-825-windows-xp-afficher-les-extensions-et-les-fichiers-caches
[Windows] Fichier .CAB endommagé ou manquantUn fichier CAB est un fichier contenant les fichiers nécessaires à l'installation d'une application. Si Windows vous affiche un des messages suivants, il peut être possible d'y remédier en lisant la suite de cet article : Erreur 1311. Fichier... www.commentcamarche.net/faq/sujet-3816-windows-fichier-cab-endommage-ou-manquant
[Python] Lire et écrire des fichiers CSVLIRE ET ÉCRIRE DES FICHIERS CSV Python www.python.org, dans sa version 2.4 supporte de facto le format CSV (comma-separated values: valeurs séparées par des virgules). La Library Reference est certes très explicative à ce... www.commentcamarche.net/faq/sujet-2382-python-lire-et-ecrire-des-fichiers-csv

Résultats pour modifier un fichier en C

Comment modifier une chanson? (Résolu)Bonjour, je voudrai savoir comment fait-on pour modifier une chanson? En l'occurrence je voudrai faire en sorte de pouvoir sélectionner une partie de la musique pour en faire une fichier indépendant du morceau original, pour pouvoir la mettre... www.commentcamarche.net/forum/affich-6370984-comment-modifier-une-chanson
Visionner un fichier .cfg (Résolu)Bonjour, J'ai apporté à mon gynéco une clé USB pour qu'il enregiste mes échographies. J'ai essayé de lire les fichiers chez moi, mais impossible. Il s'agit de fichiers.cfg. Pouvez vous m'indiquer de quel type de fichier il... www.commentcamarche.net/forum/affich-1968569-visionner-un-fichier-cfg
Fichiers cfg (Résolu)Bonjour, Quelqu'un peut-il me rappeler comment ouvrir un fichie "*.cfg" Merci de votre précieuse aide Minili www.commentcamarche.net/forum/affich-2650377-fichiers-cfg

Résultats pour modifier un fichier en C

Fichier CDAFormat CDA Un fichier CDA est le plus souvent un fichier-"plage" (ou "piste") directement issu d'un CD audio. Lire un fichier CDA Pour lire de tels fichiers, il suffit de télécharger un lecteur capable de lire les CD audio, par exemple... www.commentcamarche.net/contents/fichier/cda.php3
Fichier CABFormat CAB Un fichier CAB (CABinet file) est un fichier compressé contenant un ensemble de fichiers, généralement à des fins d'installation. Comment ouvrir un fichier CAB ? Pour décompresser un fichier CAB, il suffit d'utiliser un des logiciels... www.commentcamarche.net/contents/fichier/cab.php3
Fichier CDGFormat CDG Un fichier CDG est un fichier de Karaoké. Il s'agit tout simplement d'un fichier vidéo contenant les paroles sous forme de texte. Comment lire un fichier CDG ? Un fichier .CDG peut être lu avec un lecteur multimédia traditionnel tel... www.commentcamarche.net/contents/fichier/cdg.php3