Bonjour à tous,

J'aimerais pour encoder des fiches avec des employés qui seront sauvegardés dans un fichier
pour les afficher plus tard.

Je penses qu'il a un problème dans mon code

La clé primaire qui permet de différencier les employés est un numero de registre


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
40
41
42
43
44
45
46
47
48
 
void ajouteremployer( int maxi)
{
    int verif=0;
 
    /*a) Vérification s'il y a de la place*/
 
    verif=verificationplace(maxi);
 
    if(verif != 0)
    {
        ajoutemployer(maxi, verif);
    }
    else
    {
        printf("Erreur le fichier est plein\n");
    }
 
    // Retour menu principal
}
----------------------------------------------------------------------------------------------------------
void ajoutemployer(int maxi,int destination)
{
    struct employer fiche ={0,"Zz","Zz","Zz",0,0,"Zz", "Zz",{0,0,0},{0,0,0}};
    struct employer *pemployer=&fiche;
    FILE *fp;
    int verif=0;
 
    fp=fopen("fiche.dat","r+b");
    if(fp != 0)
    {
        // Encodage de la fiche
 
        /*place le pointeur d'écriture au bon endroit*/
 
        fseek(fp,sizeof(struct employer)*destination,SEEK_SET);
 
        /*écrit dans le fichier*/
 
        fwrite(pemployer,sizeof(struct employer),1,fp);
 
        fclose(fp);
    }
    else
    {
        printf("Ouverture du fichier echoue");
    }
}

Merci d'avance pour vos commentaires