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 :

nouveau programme à vérifier .


Sujet :

C

  1. #21
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Points : 1 069
    Points
    1 069
    Par défaut
    qq pourra me l'expliquer ?
    Au moment du segfault, tu étais à la ligne 115 de operationFichier.c. Ton problème est donc à cette ligne ou avant... La chaine que tu passes à fputs n'est pas celle à laquelle tu t'attends.

    Je n'ai pas compris aussi pourquoi tu as changé ça.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      for ( i=0;i<LenM-1;i++)
    Enlève le -1. Pareil pour la boucle j. Prends LenM égal à 1 pour t'en convaincre : tu ne rentreras jamais dans la boucle alors qu'il faudrait faire un tour.

    Curieux ton segfault, avec quelques corrections isolées, déjà citées, sur ton dernier fichier envoyé, j'obtiens bien un fichier mais pas celui que tu veux bien sûr et il n'est pas vide. Réintroduirais-tu des bugs ?

  2. #22
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par aoyou Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fgets (ch,strlen(ch),f)
    ch n'est pas initialisé. strlen (ch) peut valoir n'importe quoi. Remets 80 comment c'était avant ou mets sizeof ch à la place de strlen si tu ne veux pas le retaper.
    Ouah, la gamelle ! Oui, bien sûr. (brain fart, comme on dit. Inexcusable... je suis en train de vider la cheminée et je vais me couvrir de cendres...)

    Corrigé.
    Pas de Wi-Fi à la maison : CPL

  3. #23
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 32
    Points : 11
    Points
    11
    Par défaut
    merci aoyou ,

    voilà le code corrigé :
    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include "structure.h"
     
     
    void Lecturefichier ( FILE *f , Module t[]);
    void Ecriturefichier ( Module t[]);
     
     
     
    int main (void)
    {
       int ret = EXIT_SUCCESS;
       Module exemple[LenM];
       FILE *f = fopen ("donnees.csv", "r");
       if (f != NULL)
       {
          Lecturefichier (f, exemple);
          fclose (f);
          Ecriturefichier (exemple);
       }
       else
       {
          printf ("erreur : le fichier ne s'ouvre pas  \n");
          ret = EXIT_FAILURE;
       }
     
       return ret;
    }
     
    void Lecturefichier ( FILE *f , Module t[])
    {
      char *pointeur;
      char *buffer;
      char ch[80];
      char *separateur = {";"};
      int i = 0;
      int valeur ; 
      int j = 0;
      t[0].Mod ="\"AP11\"";
     
      while ((fgets (ch,sizeof(ch),f)) != NULL )
        {
          buffer = strdup (ch);
          pointeur = strtok(buffer,separateur);
     
          if ( (strcmp (pointeur,t[i].Mod ))== 0 )
    	{
    	  t[i].Mod = strdup (pointeur) ;
    	  pointeur = strtok (NULL , separateur);
    	  t[i].Sem = strdup (pointeur) ;
    	  pointeur = strtok (NULL , separateur);
    	  t[i].Prom =strdup (pointeur) ;
    	  pointeur = strtok (NULL , separateur);
    	  t[i].Cord = strdup (pointeur);
    	  pointeur = strtok (NULL , separateur);
    	  t[i].act[j].Nom =strdup(pointeur) ; 
    	  pointeur = strtok (NULL , separateur);
    	  sscanf(pointeur,"%d",&valeur);
    	  t[i].act[j].Ng = valeur ; 
    	  pointeur = strtok (NULL , separateur);
    	  sscanf (pointeur ,"%d", &valeur);
    	  t[i].act[j].Neg = valeur;
    	  pointeur = strtok (NULL , separateur);
    	  sscanf (pointeur,"%d", &valeur);
    	  t[i].act[j].Nhg = valeur;
    	  j++;
    	}
         else
    	{
    	  i++;
              j=0;
              t[i].Mod =strdup (pointeur) ;
    	  pointeur = strtok (NULL , separateur);
    	  t[i].Sem = strdup (pointeur) ; 
    	  pointeur = strtok (NULL , separateur);
    	  t[i].Prom =strdup (pointeur);
    	  pointeur = strtok (NULL , separateur);
    	  t[i].Cord = strdup (pointeur) ;
    	  pointeur = strtok (NULL , separateur);
    	  t[i].act[j].Nom = strdup (pointeur) ; 
    	  pointeur = strtok (NULL , separateur);
    	  sscanf(pointeur,"%d",&valeur);
    	  t[i].act[j].Ng = valeur ; 
    	  pointeur = strtok (NULL , separateur);
    	  sscanf (pointeur ,"%d", &valeur);
    	  t[i].act[j].Neg = valeur;
    	  pointeur = strtok (NULL , separateur);
    	  sscanf (pointeur,"%d", &valeur);
    	  t[i].act[j].Nhg = valeur;
    	}
        }
    }
     
     
     
     
     
    void Ecriturefichier ( Module t[] )
    {
      char nomfich[21];
      int i,j;
      FILE *sortie;
     
      printf ( "nom du fichier à créer : ");
      scanf ( "%20s" , nomfich);
      sortie = fopen (nomfich , "w" );
     
      for ( i=0;i<LenM;i++)
        {
          for ( j=0;j<LenA;j++)
    	{
    	  fputs (t[i].Mod , sortie ); fputc (';',sortie);
    	  fputs (t[i].Sem , sortie ); fputc (';',sortie);
    	  fputs (t[i].Prom, sortie ); fputc (';',sortie);
    	  fputs (t[i].Cord, sortie ); fputc (';',sortie);
    	  fputs (t[i].act[j].Nom, sortie ); fputc (';',sortie);
    	  fprintf (sortie, "%d",t[i].act[j].Ng); fputc (';',sortie);
    	  fprintf (sortie, "%d",t[i].act[j].Neg); fputc (';',sortie);
    	  fprintf (sortie, "%d",t[i].act[j].Nhg); fputc (';',sortie);
    	  fprintf (sortie , "\n");
    	}
        }
    }
    j'ai fait comme tu m'as dit , j'obtiens un fichier presque identique à celui que je voulais ; juste une petite différence :

    "AP11";"SEM1";"EI1";"PROTOY";"COURS";1;1;1;
    "AP11";"SEM1";"EI1";"PROTOY";"CGROUPE";8;1;30;
    "AP11";"SEM1";"EI1";"PROTOY";"TD";8;1;34;
    "AP11";"SEM1";"EI1";"PROTOY";"TP";8;2;65;
    "UX11";"SEM1";"EI1";"SILBER";"CGROUPE";8;1;26;
    "UX11";"SEM1";"EI1";"SILBER";"TD";8;1;36;
    "UX11";"SEM1";"EI1";"SILBER";"TP";8;1;1;
    "UX11";"SEM1";"EI1";"SILBER";ƒ ÿÿÿ‰Eðƒ ÿÿÿ)EðÁ}ð‹Uðาt+1ニ¶;8686821;-1080671988;-1080672136;

    d'où provient cette erreur tu penses ?
    merci

  4. #24
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Points : 1 069
    Points
    1 069
    Par défaut
    En fait, il faudrait que tu fasses j++ à la fin du else pour que tu n'écrases pas les données pour j=0.
    Il faudrait aussi que tu n'affiches pas de ; à la fin de la ligne. Pas très compliqué mais si tu veux exactement le même fichier...

    Bon maintenant que tout est à peu près corrigé (ça doit être bon maintenant), il va te falloir faire un code un peu plus propre... et revoir ton algorithme de lecture. On dirait une chambre à air avec pleins de rustines maintenant.

  5. #25
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 32
    Points : 11
    Points
    11
    Par défaut
    Merci beaucoup aoyou , ça marche maintenant ,

  6. #26
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Points : 1 069
    Points
    1 069
    Par défaut
    Oups là, ne t'en vas pas. Si j'avais su, je ne t'aurais pas dit où était ton erreur.

    Ton code n'est ni propre ni robuste. Regarde le code envoyé par Emmanuel.

  7. #27
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 32
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par aoyou Voir le message
    Ton code n'est ni propre ni robuste. Regarde le code envoyé par Emmanuel.
    c'est pas grave pour le moment , le plus important c'est qu'il fonctionne correctement. j'essayerai de l'améliorer ultérieurement.

    merci de ton aide

  8. #28
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Points : 1 069
    Points
    1 069
    Par défaut
    Pas grave pas grave...
    Si tu changes les données, ça ne marche plus.
    Si l'ouverture du fichier de sortie échoue, ça plante.

    Lis au moins le code envoyé par Emmanuel pour voir les améliorations. Tu es aussi là pour prendre des bonnes manières...

  9. #29
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 32
    Points : 11
    Points
    11
    Par défaut
    salut ,

    donc pour suivre le conseil de aoyou , je veux bien améliorer mon code.
    mais en lisant le code d'Emmanuel , il y a des trucs que je comprenais pas ... alors si qq pourra m'expliquer ..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    static size_t Lecturefichier (FILE * f, Module t[], size_t max)
    déja ici , pourquoi on met static ? peut-on l'enlever ?
    c'est quoi exactement size_t ?
    ici c'est quoi assert ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
             for (j = 0; j < sizeof t[i].act / sizeof *t[i].act; j++)
    je ne comprends pas ici : sizeof[i].act / sizeof *t[i].act .. ça fait quoi ? {
    est il nécessaire de mettre #if 0 ici , y a-t-il d'autres moyens plus facile


    Merci beaucoup de votre aide

  10. #30
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par dnmfaw Voir le message
    donc pour suivre le conseil de aoyou , je veux bien améliorer mon code.
    mais en lisant le code d'Emmanuel , il y a des trucs que je comprenais pas ... alors si qq pourra m'expliquer ..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    static size_t Lecturefichier (FILE * f, Module t[], size_t max)
    déja ici , pourquoi on met static ? peut-on l'enlever ?
    http://emmanuel-delahaye.developpez....tes.htm#static
    c'est quoi exactement size_t ?
    http://emmanuel-delahaye.developpez....tes.htm#size_t
    ici c'est quoi assert ?
    Jamais tu ouvres ton livre de C ? Toutes les réponses à ces questions s'y trouvent...

    http://emmanuel-delahaye.developpez....tes.htm#assert
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
             for (j = 0; j < sizeof t[i].act / sizeof *t[i].act; j++)
    je ne comprends pas ici : sizeof[i].act / sizeof *t[i].act .. ça fait quoi ? {
    Ca calcule le nombre d'éléments du tableau en divisant sa taille totale par la taille d'un de ses éléments.
    est il nécessaire de mettre #if 0 ici , y a-t-il d'autres moyens plus facile
    C'est une utilisation du préprocesseur (instructions #xxx) qui s'appelle la 'compilation conditionnelle'. L'intérêt est d'isoler des portions de code (à des fins de tests) de manière réversible. Pour réactiver le code, il suffit de remplacer 0 par 1.
    Pas de Wi-Fi à la maison : CPL

  11. #31
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 32
    Points : 11
    Points
    11
    Par défaut
    salut ,

    alors j'ai essayé d'éxecuter le code qu'Emmanuel a posté ... ça donne un fichier mais qui contient uniquement la ligne suivante :
    "AP11","AP11","AP11","AP11"

    c normal ?
    qq pourra m'aider à identifier l'erreur ??

    Merci

  12. #32
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par dnmfaw Voir le message
    qq pourra m'aider à identifier l'erreur ??
    Il faudrait pour ça qu'on ait un exemple de fichier à traiter et une description précise du traitement attendu.
    Pas de Wi-Fi à la maison : CPL

  13. #33
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 32
    Points : 11
    Points
    11
    Par défaut
    salut ,

    alors voilà , j'ai pris le code d'Emmanuel et je l'ai changé un peu (pour des raisons perso)
    voilà le code :
    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <assert.h>
     
    typedef struct
    {
       char *Nom;
       int Ng, Neg, Nhg;
    }
    Activite;
     
    typedef struct
    {
       char const *Mod, *Sem, *Prom, *Cord;
       Activite act[4];
    }
    Module;
     
    static size_t Lecturefichier (FILE * f, Module t[], size_t max)
    {
       size_t n=0;
       char *buffer;
       char *pointeur; 
       char ch[128];
       size_t i = 0;
       char  *separateur = { ";" };
       size_t j = 0;
       t[i].Mod = "\"AP11\"";
     
       while ((fgets (ch, sizeof ch, f)) != NULL)
       {
         buffer = strdup (ch);
         pointeur = strtok (buffer,separateur);
     
          assert (i < max);
     
          if ((strcmp (pointeur, t[i].Mod)) == 0)
          {
             t[i].Mod = strdup (pointeur);
             pointeur = strtok (NULL, separateur);
             t[i].Sem = strdup (pointeur);
             pointeur = strtok (NULL, separateur);
             t[i].Prom = strdup (pointeur);
             pointeur = strtok (NULL, separateur);
             t[i].Cord = strdup (pointeur);
             pointeur = strtok (NULL, separateur);
             t[i].act[j].Nom = strdup (pointeur);
             pointeur = strtok (NULL, separateur);
             {
                int valeur;
                sscanf (pointeur, "%d", &valeur);
                t[i].act[j].Ng = valeur;
                pointeur = strtok (NULL, separateur);
                sscanf (pointeur, "%d", &valeur);
                t[i].act[j].Neg = valeur;
                pointeur = strtok (NULL, separateur);
                sscanf (pointeur, "%d", &valeur);
                t[i].act[j].Nhg = valeur;
             }
    	 j++;
          }
          else
          {
             i++;
    	 j=0;
             assert (i < max);
             t[i].Mod = strdup (pointeur);
             pointeur = strtok (NULL, separateur);
             t[i].Sem = strdup (pointeur);
             pointeur = strtok (NULL, separateur);
             t[i].Prom = strdup (pointeur);
             pointeur = strtok (NULL, separateur);
             t[i].Cord = strdup (pointeur);
             pointeur = strtok (NULL, separateur);
             t[i].act[j].Nom = strdup (pointeur);
             pointeur = strtok (NULL, separateur);
             {
                int valeur;
                sscanf (pointeur, "%d", &valeur);
                t[i].act[j].Ng = valeur;
                pointeur = strtok (NULL, separateur);
                sscanf (pointeur, "%d", &valeur);
                t[i].act[j].Neg = valeur;
                pointeur = strtok (NULL, separateur);
                sscanf (pointeur, "%d", &valeur);
                t[i].act[j].Nhg = valeur;
             }
    	 j++;
          }
       }
       n=i+1;
     
       return n;
    }
     
    static void Ecriturefichier (Module t[], size_t n)
    {
       char nomfich[] = "donnees.txt";
       FILE *sortie = fopen (nomfich, "w");
       if (sortie != NULL)
       {
          size_t i;
          for (i = 0; i < n; i++)
          {
             size_t j;
             for (j = 0; j < sizeof t[i].act / sizeof *t[i].act; j++)
             {
                fputs (t[i].Mod, sortie);
                fputc (';', sortie);
                fputs (t[i].Sem, sortie);
                fputc (';', sortie);
                fputs (t[i].Prom, sortie);
                fputc (';', sortie);
                fputs (t[i].Cord, sortie);
                fputc (';', sortie);
                fputs (t[i].act[j].Nom, sortie);
                fputc (';', sortie);
                fprintf (sortie, "%d", t[i].act[j].Ng);
                fputc (';', sortie);
                fprintf (sortie, "%d", t[i].act[j].Neg);
                fputc (';', sortie);
                fprintf (sortie, "%d", t[i].act[j].Nhg);
                fprintf (sortie, "\n");
             }
          }
          fclose (sortie);
       }
    }
     
    int main (void)
    {
       int ret = EXIT_SUCCESS;
       Module exemple[10];
       FILE *f = fopen ("donnees1.csv", "r");
       if (f != NULL)
       {
          size_t n = Lecturefichier (f, exemple, sizeof exemple / sizeof *exemple);
          fclose (f);
          Ecriturefichier (exemple, n);
       }
       else
       {
          printf ("erreur : le fichier ne s'ouvre pas  \n");
          ret = EXIT_FAILURE;
       }
     
       return ret;}
    je l'ai testé sur ce premier fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    "AP11";"SEM1";"EI1";"PROTOY";"COURS";1;1;1
    "AP11";"SEM1";"EI1";"PROTOY";"CGROUPE";8;1;30
    "AP11";"SEM1";"EI1";"PROTOY";"TD";8;1;34
    "AP11";"SEM1";"EI1";"PROTOY";"TP";8;2;65
    "UX11";"SEM1";"EI1";"SILBER";"COURS";1;1;1
    "UX11";"SEM1";"EI1";"SILBER";"CGROUPE";8;1;26
    "UX11";"SEM1";"EI1";"SILBER";"TD";8;1;36
    "UX11";"SEM1";"EI1";"SILBER";"TP";8;1;1
    ça bien marché , j'ai obtenu le fichier demandé

    mais lorsque je le teste sur ce fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    "AP11";"S1";"EI1";"PROTOY";"COURS";1;1;1
    "AP11";"S1";"EI1";"PROTOY";"CGROUPE";8;1;26
    "AP11";"S1";"EI1";"PROTOY";"TD";8;1;60
    "AP11";"S1";"EI1";"PROTOY";"TP";8;2;60
    "UX11";"S1";"EI1";"SILBER";"COURS";1;1;1
    "UX11";"S1";"EI1";"SILBER";"CGROUPE";8;1;50
    "UX11";"S1";"EI1";"SILBER";"TD";8;1;20
    "MA11";"S1";"EI1";"MARDIN";"COURS";15;1;60
    "MA11";"S1";"EI1";"MARDIN";"TD";20;1;60
    j'ai Erreur de segmentation !!

    mon but de ce programme c'est de pouvoir lire un fichier donné et le réecrire dans un autre fichier
    le tableau act de la structure Module peut changer de longueur selon le nom du module cad pour AP11 on a 4 act : cours , cgroupe, TD et TP par contre pour MA11 , on n'en a que deux .

    Merci

  14. #34
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Points : 1 069
    Points
    1 069
    Par défaut
    Il faut que tu sauvegardes dans ta structure Module le nombre d'activités par module. Un simple tableau de taille 4 ne suffit plus alors. Il faut que tu saches le nombre d'activités que tu as lu pour ne restituer que celles-ci. Autrement, tu tapes dans une mémoire que tu n'as jamais initialisé et segfault.
    Peux-tu aussi faire le ménage dans tes topics ? Tu as ouvert des conversations, continuer dans d'autres. Du coup, on te répond sur tes anciens topics mais c'est obsolète. Marque les résolu même si ce n'est pas vraiment le cas.

Discussions similaires

  1. Réponses: 0
    Dernier message: 02/02/2010, 11h16
  2. nouveau programme de requete sur une page WEB
    Par djex93 dans le forum Android
    Réponses: 7
    Dernier message: 29/01/2010, 22h07
  3. [Shareware]Nouveau programme : CoderUtility
    Par N1bus dans le forum Mon programme
    Réponses: 1
    Dernier message: 13/09/2008, 14h27
  4. Nouveau programme pour débutant
    Par gregouz59 dans le forum Débuter
    Réponses: 4
    Dernier message: 02/06/2008, 17h45

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