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 :

fgets & co... prog lit dans mes pensées :s:s !!


Sujet :

C

  1. #21
    BnY
    BnY est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 160
    Points : 34
    Points
    34
    Par défaut
    euhh pasqu'il y en a 23 désolé j'ai pas tout mis dans le fichier de tout a l'heure je voulais pas surcharger pour rien le topic... je vais corriger mes erreurs et essayer

    merci encore !!

  2. #22
    BnY
    BnY est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 160
    Points : 34
    Points
    34
    Par défaut
    oki bon ca marche bien par contre mon probleme était dans la partie avec les strtok(), que j'utilise pour sortir toutes les valeurs d'un fichier qui ressemble a ceci:

    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
     
    ID Depart  ID Arrivee  Distance
    =============================================================
    2  3  259
    2  5  16960
    2  6  9092
    2  7  5835
    2  8  5505
    2  9  9203
    2  10  1479
    2  11  9343
    2  12  6278
    2  13  5000
    2  14  4202
    2  15  3330
    2  16  1758
    2  17  1343
    2  18  10734
    2  20  18985
    2  21  7722
    2  22  9169
    2  25  9445
    2  31  2489
    2  41  9716
    2  42  8965
    3  5  16746
    3  6  3288
    3  7  5889
    3  8  5538
    3  9  9255
    3  10  1619
    3  11  9523
    3  12  6385
    3  13  5238
    3  14  4462
    3  15  3293
    3  16  1696
    3  17  1091
    3  18  10559
    3  20  18726
    3  21  7848
    3  22  9426
    3  25  9252
    3  31  2258
    3  41  9456
    3  42  8708
    5  6  14399
    5  7  15994
    5  8  16029
    5  9  12965
    5  10  16485
    5  11  11007
    séparés par deux \t
    bien evidemment incomplet celui la aussi vu le nombre de lignes de correspondances...
    deja est ce que j'utilise la bonne methode avec strtok pour mettre en memoire dans un tableau toutes les valeurs de ce fichier ?? pendant ce temps je vais corriger toutes mes erreurs ailleurs

  3. #23
    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 BnY
    par contre mon probleme était dans la partie avec les strtok(), que j'utilise pour sortir toutes les valeurs d'un fichier qui ressemble a ceci:
    <...>
    séparés par deux \t
    Comme je te l'ai expliqué 3000 fois, les tabiulations, c'est pas une bonne idée. C'est le premier truc qui saute dans le HTML (et dans mon éditeur qui remplace les tabs par des espaces...)...

    Bref, je refais ton fichier chez moi en mettant un ; comme séparateur.

    Les différences entre ton code et le mien sont donc regroupées dans le #if 0 #else #endif, comme tu semble enfin l'avoir compris...

    Et je passe sur les noms de fichiers tordus, franchement tu joues avec le feu...
    bien evidemment incomplet celui la aussi vu le nombre de lignes de correspondances...
    deja est ce que j'utilise la bonne methode avec strtok pour mettre en memoire dans un tableau toutes les valeurs de ce fichier ?? pendant ce temps je vais corriger toutes mes erreurs ailleurs
    EDIT : Il est clair qu'une fois que tu as 'affiché les lignes', il faut revenir au début si tu veux refaire un traitement : rewind(), puis à nouveau sauter 2 lignes... avant d'analyser...

    Ceci marchouille.
    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
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
     
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
     
    #if 0
    #define MAX_AEROPORTS 23
    #define F_AIRPORTS "C:\\Program Files\\Microsoft Visual Studio\\MyProjects\\testlogincorrigé\\tlogcorr\\FicCaracteristiquesAeroport.txt"
    #define F_CONNEXIONS "C:\\Program Files\\Microsoft Visual Studio\\MyProjects\\testlogincorrigé\\tlogcorr\\FicCorrespondanceAeroport.txt"
    const char* sep = "\t";
    #else 
    /* simplicite... */
    #define MAX_AEROPORTS 23
    #define F_AIRPORTS "airport.txt"
    #define F_CONNEXIONS "corresp.txt"
     
    const char* sep = ";";
    #endif
     
    static void clean (char *s, FILE *fp)
    {
       /* search ... */
       char *p = strchr (s, '\n');
     
       if (p != NULL)
       {
          /* ... and kill */
          *p = 0;
       }
       else
       {
          /* purge */
          int c;
     
          while ((c = fgetc(fp)) != '\n' && c != EOF)
          {
          }
       }
    }
     
    static int sauterdeuxlignes(FILE *flot)
    {
       int n = 0;
       int c;
     
       while (n < 2 && (c = fgetc(flot)) != EOF )
       {
          if (c == '\n')
          {
             n++;
          }
       }
       printf ("c = %d\n", c);
       return c;
    }
     
    static void afficher_fichier(FILE *flot)
    {
       char chaine[128];
     
       while (fgets(chaine, sizeof (chaine), flot) != NULL)
       {
          printf("%s", chaine);
       }
    }
     
    static int IDtoPO(int ID, int *tablo, int taille)
    {
       int a = -1;
       int i;
       for (i = 0;i < taille;i++)
       {
          if (ID == tablo[i])
          {
             a = i;
             break;
          }
       }
     
       return a;
    }
     
    int main (void)
    {
       int ret = EXIT_SUCCESS;
       FILE*fpaero = fopen(F_AIRPORTS, "r");
     
       if (fpaero != NULL)
       {
          int tableau[MAX_AEROPORTS][MAX_AEROPORTS] =
             {
                {
                   0
                }
             };
          int c = sauterdeuxlignes(fpaero);
          int tab[MAX_AEROPORTS];
     
          if (c != EOF)
          {
             {
                int i = 0;
                char chaine[200];
                while (fgets(chaine, sizeof (chaine), fpaero) != NULL && i < MAX_AEROPORTS)
                {
    #if 1
                   printf("%s", chaine);
    #endif
     
                   tab[i] = atoi(chaine);
                   i++;
                }
                printf ("%d airports loaded\n", i);
             }
             {
                int i;
                int j;
                for (i = 0, j = 0;i < MAX_AEROPORTS;i++)
                {
                   printf("%4d\n", tab[i]);
                   tableau[j][0] = tab[i];
                   tableau[0][j] = tab[i];
                   j++;
                }
             }
          }
          fclose (fpaero), fpaero = NULL;
     
          {
             FILE*fpcorres = fopen(F_CONNEXIONS, "r");
             if (fpcorres != NULL)
             {
                char chaine[128];
    #if 0
     
                afficher_fichier(fpcorres);
                rewind (fpcorres);
    #endif
     
                {
                   int c = sauterdeuxlignes(fpcorres);
     
                   while (fgets(chaine, sizeof chaine, fpcorres) != NULL)  // c'est par la que ca foire
                   {
                      clean(chaine, fpcorres);
                      {
                         int err = 0;
                         char *ID1 = strtok(chaine, sep);
     
                         if (ID1 != NULL)
                         {
                            char *ID2 = strtok(NULL, sep);
                            if (ID2 != NULL)
                            {
                               char *dist = strtok(NULL, sep);
                               if (dist != NULL)
                               {
                                  int a = atoi(ID1);
                                  int b = atoi(ID2);
                                  int i = IDtoPO(a, tab, MAX_AEROPORTS);
                                  int j = IDtoPO(b, tab, MAX_AEROPORTS);
     
                                  if (i != -1 && j != -1)
                                  {
    #if 1
                                     printf("%6d | %6d | %10s |\n", i , j , dist );
    #endif
     
                                     tableau[i][j] = atoi(dist);
                                  }
                                  else
                                  {
                                     printf ("'%s' ignored\n", chaine);
                                  }
                               }
                               else
                               {
                                  err = 3;
                               }
                            }
                            else
                            {
                               err = 2;
                            }
                         }
                         else
                         {
                            err = 1;
                         }
     
                         if (err)
                         {
                            printf("'%s'", chaine);
                            printf ("format error (%d)\n", err);
                            break;
                         }
                      }
                   }
                }
                fclose (fpcorres), fpcorres = NULL;
     
                system("pause");
                /* print the courses */
                {
                   int i;
                   for (i = 0;i < MAX_AEROPORTS;i++)
                   {
                      int j;
                      for (j = 0;j < MAX_AEROPORTS;j++)
                      {
                         printf("\t%d", tableau[i][j]);
                      }
                   }
                }
             }
             else
             {
                perror(F_CONNEXIONS);
                ret = EXIT_FAILURE;
             }
          }
     
       }
       else
       {
          perror(F_AIRPORTS);
          ret = EXIT_FAILURE;
       }
       return ret;
    }
    Pas de Wi-Fi à la maison : CPL

  4. #24
    BnY
    BnY est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 160
    Points : 34
    Points
    34
    Par défaut
    Comme je te l'ai expliqué 3000 fois, les tabiulations, c'est pas une bonne idée.
    euh oui j'veux bien mais j'ai pas le choix lool le fichier est comme ca j'ai pas le droit de le changer...

    et pour les noms de fichiers tordus et qui contiennent des fautes c'est pareil j'ai pas le choix ils me sont donnés comme ca et si quand je rend mon projet avec d'autres noms parceque chez moi j'ai changé les noms elle pourra rien ouvrir et je doute qu'elle apprécie le ptit mot lui indiquant de changer tous les noms sur tout le code ... nan ?? lol

    ca me fait bien c****, mais bon...

    sinon ta fonction sauterdeuxlignes ne saute qu'une ligne c'est normal ?? lol ca me derange pas a partir du moment ou je n'ai qu'a l'appeler deux fois c'était juste pour savoir

  5. #25
    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 BnY
    sinon ta fonction sauterdeuxlignes ne saute qu'une ligne c'est normal ?? lol ca me derange pas a partir du moment ou je n'ai qu'a l'appeler deux fois c'était juste pour savoir
    Ce n'est pas normal... :
    Une ligne à remplacer par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       while (n < 2 && (c = fgetc(flot)) != EOF )
    Pas de Wi-Fi à la maison : CPL

  6. #26
    BnY
    BnY est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 160
    Points : 34
    Points
    34
    Par défaut
    oki merci je me disais aussi que le !='\n' dans le while était bizarre vu qu'on s'en servait dans le if(c=='\n') ...

  7. #27
    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 BnY
    oki merci je me disais aussi que le !='\n' dans le while était bizarre vu qu'on s'en servait dans le if(c=='\n') ...
    C'est bien.. Tu commences à avoir les bons reflexes... Et il y avait un deuxième bug assez subtil. Il manquait un caractère dans la ligne suivante, dû à l'ordre des actions dans le while. En effet, il fut arréter de lire quand on a n = 2 (l'évaluation de l'expression de fait de gauche à doite, et s'arrête dès qu'une condition est vraie). Corrigé.
    Pas de Wi-Fi à la maison : CPL

  8. #28
    BnY
    BnY est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 160
    Points : 34
    Points
    34
    Par défaut
    c'est dingue comment tu programmes vite !!!

    avec le code que tu proposes plus haut en constante evolution je sais pas si chez toi il te fait pareil, mais apparement il s'arrete en plein milieu de l'affichage: d'apres le debogage il y aurait un probleme sur cette ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tableau[i][j] = atoi(dist);
    enfin bon pour l'affichage autant te dire tout de suite de pas te prendre la tete ( enfin moi je m'en sers juste pour verifier ce que fait mon prog, mais il n'est pas tout le temps utile dans le prog final )

    je cherche de mon coté mais bon j'ai pas ton experience alors il y a des chances que tu trouves avant moi lol

    merci encore infiniment pour ton aide

  9. #29
    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 BnY
    avec le code que tu proposes plus haut en constante evolution je sais pas si chez toi il te fait pareil, mais apparement il s'arrete en plein milieu de l'affichage: d'apres le debogage il y aurait un probleme sur cette ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tableau[i][j] = atoi(dist);
    Je n'ai ce problème...

    J'obtiens ceci :
    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
     
    c = 10
    11 airports loaded
       2
       3
       5
       6
       7
       8
       9
      10
      11
      12
      13
    c = 10
         2 |      3 |        259 |
         2 |      5 |      16960 |
         2 |      6 |       9092 |
         2 |      7 |       5835 |
         2 |      8 |       5505 |
         2 |      9 |       9203 |
         2 |     10 |       1479 |
         2 |     11 |       9343 |
         2 |     12 |       6278 |
         2 |     13 |       5000 |
         2 |     14 |       4202 |
         2 |     15 |       3330 |
         2 |     16 |       1758 |
         2 |     17 |       1343 |
         2 |     18 |      10734 |
         2 |     20 |      18985 |
         2 |     21 |       7722 |
         2 |     22 |       9169 |
         2 |     25 |       9445 |
         2 |     31 |       2489 |
         2 |     41 |       9716 |
         2 |     42 |       8965 |
         3 |      5 |      16746 |
         3 |      6 |       3288 |
         3 |      7 |       5889 |
         3 |      8 |       5538 |
         3 |      9 |       9255 |
         3 |     10 |       1619 |
         3 |     11 |       9523 |
         3 |     12 |       6385 |
         3 |     13 |       5238 |
         3 |     14 |       4462 |
         3 |     15 |       3293 |
         3 |     16 |       1696 |
         3 |     17 |       1091 |
         3 |     18 |      10559 |
         3 |     20 |      18726 |
         3 |     21 |       7848 |
         3 |     22 |       9426 |
         3 |     25 |       9252 |
         3 |     31 |       2258 |
         3 |     41 |       9456 |
         3 |     42 |       8708 |
         5 |      6 |      14399 |
         5 |      7 |      15994 |
         5 |      8 |      16029 |
         5 |      9 |      12965 |
         5 |     10 |      16485 |
         5 |     11 |      11007 |
            2       3       5       6       7       8       9       10      11      12      13      3       8       2293232 3998072
    18      2292940 130     2293728 2089938456      2089944432      -1      5       4006960 2359296 259     2372520 16960   9092
    5835    5505    9203    1479    9343    6278    5000    4202    3330    16746   3288    5889    5538    9255    1619    9523
    6385    5238    4462    3293    1696    1091    10559   2009072557      18726   7848    9426    29      2293252 9252    2293400
    2009095316      14399   15994   16029   12965   16485   11007   29      1365    2009064740      4005712 2009064790      4005712
    2293388 9456    8708    2009072557      10      2009267360      0       59      2293348 2009143487      2293496 2009095316
    2008950144      -1      2009072557      11      1       4013112 59      1       2009267360      4215149 2293436 2009149723
    2009113902      2009275256      12      2009119121      17      2293512 2009143501      1       2009267360      2009143487
    1       592     4215149 13      1       2293468 0       2293728 2293512 4203482 4215149 2293560 4202319 4251692
    Press ENTER to continue.
    Avec ces deux fichiers :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Num Aeroport  Nom Aeroport  Fuseau horaire  Heure ouverture  Heure Fermeture
    ====================================================================================================
    2  Roissy  GMT + 0  00:00  23:59
    3  Bruxelles  GMT + 0  06:00  22:59
    5  Sydney  GMT + 10  00:00  23:59
    6  Le Caire  GMT + 2  03:00  22:59
    7  New York  GMT - 5  00:00  23:59
    8  Montreal  GMT - 5  01:00  23:59
    9  Mexico  GMT - 6  03:00  22:30
    10  Tunis  GMT + 0  05:00  23:00
    11  Cape Town  GMT + 0  02:00  23:59
    12  Kigali  GMT + 0  04:00  21:45
    13  Abidjan  GMT + 0  01:00  23:59
    et
    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
     
    ID Depart  ID Arrivee  Distance
    =============================================================
    2;  3 ; 259
    2;  5 ; 16960
    2;  6 ; 9092
    2;  7 ; 5835
    2;  8 ; 5505
    2;  9 ; 9203
    2;  10;  1479
    2;  11;  9343
    2;  12;  6278
    2;  13;  5000
    2;  14; 4202
    2;  15;  3330
    2;  16;  1758
    2;  17;  1343
    2;  18;  10734
    2;  20;  18985
    2;  21;  7722
    2;  22;  9169
    2;  25;  9445
    2;  31;  2489
    2;  41;  9716
    2;  42;  8965
    3;  5 ; 16746
    3;  6 ; 3288
    3;  7 ; 5889
    3;  8 ; 5538
    3;  9 ; 9255
    3;  10;  1619
    3;  11;  9523
    3;  12;  6385
    3;  13;  5238
    3;  14;  4462
    3;  15;  3293
    3;  16;  1696
    3;  17;  1091
    3;  18;  10559
    3;  20;  18726
    3;  21;  7848
    3;  22;  9426
    3;  25;  9252
    3;  31;  2258
    3;  41;  9456
    3;  42;  8708
    5;  6 ; 14399
    5;  7 ; 15994
    5;  8 ; 16029
    5;  9 ; 12965
    5;  10;  16485
    5;  11;  11007
    Pas de Wi-Fi à la maison : CPL

  10. #30
    BnY
    BnY est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 160
    Points : 34
    Points
    34
    Par défaut
    avec le fichier total :

    ID Depart ID Arrivee Distance
    =============================================================
    2 3 259
    2 5 16960
    2 6 9092
    2 7 5835
    2 8 5505
    2 9 9203
    2 10 1479
    2 11 9343
    2 12 6278
    2 13 5000
    2 14 4202
    2 15 3330
    2 16 1758
    2 17 1343
    2 18 10734
    2 20 18985
    2 21 7722
    2 22 9169
    2 25 9445
    2 31 2489
    2 41 9716
    2 42 8965
    3 5 16746
    3 6 3288
    3 7 5889
    3 8 5538
    3 9 9255
    3 10 1619
    3 11 9523
    3 12 6385
    3 13 5238
    3 14 4462
    3 15 3293
    3 16 1696
    3 17 1091
    3 18 10559
    3 20 18726
    3 21 7848
    3 22 9426
    3 25 9252
    3 31 2258
    3 41 9456
    3 42 8708
    5 6 14399
    5 7 15994
    5 8 16029
    5 9 12965
    5 10 16485
    5 11 11007
    5 12 12685
    5 13 15839
    5 14 17604
    5 15 14129
    5 16 15434
    5 17 15948
    5 18 6300
    5 20 2225
    5 21 14957
    5 22 13519
    5 25 7533
    5 31 14492
    5 41 7824
    5 42 8329
    6 7 9040
    6 8 8732
    6 9 12396
    6 10 2103
    6 11 7221
    6 12 3579
    6 13 4681
    6 14 5253
    6 15 427
    6 16 1595
    6 17 3681
    6 18 8252
    6 20 16504
    6 21 10659
    6 22 9885
    6 25 7261
    6 31 2923
    6 41 9575
    6 42 8488
    7 8 537
    7 9 3367
    7 10 7015
    7 11 12563
    7 12 11343
    7 13 8016
    7 14 6132
    7 15 9166
    7 16 7583
    7 17 5913
    7 18 15342
    7 20 14406
    7 21 2535
    7 22 7752
    7 25 13938
    7 31 7512
    7 41 10853
    7 42 11058
    8 9 3734
    8 10 6757
    8 11 12762
    8 12 11241
    8 13 8089
    8 14 6221
    8 15 8830
    8 16 7234
    8 17 5482
    8 18 14804
    8 20 14641
    8 21 3071
    8 22 8204
    8 25 13401
    8 31 7056
    8 41 10387
    8 42 10552
    9 10 10337
    9 11 13710
    9 12 14174
    9 13 10393
    9 14 8618
    9 15 12533
    9 16 10950
    9 17 9200
    9 18 16606
    9 20 11096
    9 21 2368
    9 22 7685
    9 25 15746
    9 31 10726
    9 41 11298
    9 42 12051
    10 11 7917
    10 12 4807
    10 13 3908
    10 14 3680
    10 15 2356
    10 16 1293
    10 17 2567
    10 18 10242
    10 20 18595
    10 21 8557
    10 22 8687
    10 25 9122
    10 31 2941
    10 41 10415
    10 42 9496
    11 12 3713
    11 13 4855
    11 14 6619
    11 15 7514
    11 16 8535
    11 17 10461
    11 18 9659
    11 20 11306
    11 21 11581
    11 22 6066
    11 25 10138
    11 31 10139
    11 41 14733
    11 42 13708
    12 13 3843
    12 14 5556
    12 15 3830
    12 16 5047
    12 17 7119
    12 18 8223
    12 20 14006
    12 21 11852
    12 22 8183
    12 25 7974
    12 31 6494
    12 41 11939
    12 42 10781
    13 14 1884
    13 15 5108
    13 16 5059
    13 17 6321
    13 18 11975
    13 20 15891
    13 21 8037
    13 22 5214
    13 25 11455
    13 31 6819
    13 41 14192
    13 42 13150
    14 15 5648
    14 16 4974
    14 17 5522
    14 18 13321
    14 20 16836
    14 21 6305
    14 22 5036
    14 25 12494
    14 31 6514
    14 41 13917
    14 42 13114
    15 16 1602
    15 17 3613
    15 18 7920
    15 20 16286
    15 21 10900
    15 22 10312
    15 25 6888
    15 31 2673
    15 41 9152
    15 42 8062
    16 17 2098
    16 18 9134
    16 20 17660
    16 21 9451
    16 22 9972
    16 25 7935
    16 31 1779
    16 41 9178
    16 42 8225
    17 18 10055
    17 20 17669
    17 21 8143
    17 22 10424
    17 25 8676
    17 31 1646
    17 41 8407
    17 42 7715
    18 20 8526
    18 21 17868
    18 22 15721
    18 25 1430
    18 31 8423
    18 41 5323
    18 42 4675
    20 21 12842
    20 22 11873
    20 25 9744
    20 31 16543
    20 41 9272
    20 42 10021
    21 22 5830
    21 25 16473
    21 31 9788
    21 41 12914
    21 42 13356
    22 25 16061
    22 31 11549
    22 41 18566
    22 42 18134
    25 31 7063
    25 41 4610
    25 42 3723
    31 41 7479
    31 42 6601
    41 42 1160
    L'affichage s'arrete a la ligne 25|31|7063 avec l'erreur: "machin.exe a rencontré un probleme et doit fermer" ...

  11. #31
    BnY
    BnY est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 160
    Points : 34
    Points
    34
    Par défaut
    tu veux que je te mette des ";" pour que tu essaies ??

  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 BnY
    tu veux que je te mette des ";" pour que tu essaies ??
    Non, c'est bon, j'ai UltraEdit et son mode colonnes...
    Pas de Wi-Fi à la maison : CPL

  13. #33
    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 BnY
    avec le fichier total :

    L'affichage s'arrete a la ligne 25|31|7063 avec l'erreur: "machin.exe a rencontré un probleme et doit fermer" ...
    Probablement un problème de débordement de taille... Il faut vérifier que les indices sont bien < MAX_AEROPORTS (23 chez toi)

    Là, je vois un 31, y'a un bug...

    Comme quoi, on est jamais assez prudent avec ses entrées... Je pense que c'est un piège fait exprès... (aéroport inconnu...)

    Avec la protection, j'obtiens (Rappel, je n'ai que 11 aéroports dans mon fichier) EDIT : j'ai corrigé le code 'message #23)
    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
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
     
    c = 10
    11 airports loaded
       2
       3
       5
       6
       7
       8
       9
      10
      11
      12
      13
    c = 10
         2 |      3 |        259 |
         2 |      5 |      16960 |
         2 |      6 |       9092 |
         2 |      7 |       5835 |
         2 |      8 |       5505 |
         2 |      9 |       9203 |
         2 |     10 |       1479 |
    '2 ' ignored
    '2 ' ignored
    '2 ' ignored
    '2 ' ignored
    '2 ' ignored
    '2 ' ignored
    '2 ' ignored
    '2 ' ignored
    '2 ' ignored
    '2 ' ignored
    '2 ' ignored
    '2 ' ignored
    '2 ' ignored
    '2 ' ignored
    '2 ' ignored
         3 |      5 |      16746 |
         3 |      6 |       3288 |
         3 |      7 |       5889 |
         3 |      8 |       5538 |
         3 |      9 |       9255 |
         3 |     10 |       1619 |
    '3 ' ignored
    '3 ' ignored
    '3 ' ignored
    '3 ' ignored
    '3 ' ignored
    '3 ' ignored
    '3 ' ignored
    '3 ' ignored
    '3 ' ignored
    '3 ' ignored
    '3 ' ignored
    '3 ' ignored
    '3 ' ignored
    '3 ' ignored
    '3 ' ignored
         5 |      6 |      14399 |
         5 |      7 |      15994 |
         5 |      8 |      16029 |
         5 |      9 |      12965 |
         5 |     10 |      16485 |
    '5 ' ignored
    '5 ' ignored
    '5 ' ignored
    '5 ' ignored
    '5 ' ignored
    '5 ' ignored
    '5 ' ignored
    '5 ' ignored
    '5 ' ignored
    '5 ' ignored
    '5 ' ignored
    '5 ' ignored
    '5 ' ignored
    '5 ' ignored
    '5 ' ignored
         6 |      7 |       9040 |
         6 |      8 |       8732 |
         6 |      9 |      12396 |
         6 |     10 |       2103 |
    '6 ' ignored
    '6 ' ignored
    '6 ' ignored
    '6 ' ignored
    '6 ' ignored
    '6 ' ignored
    '6 ' ignored
    '6 ' ignored
    '6 ' ignored
    '6 ' ignored
    '6 ' ignored
    '6 ' ignored
    '6 ' ignored
    '6 ' ignored
    '6 ' ignored
         7 |      8 |        537 |
         7 |      9 |       3367 |
         7 |     10 |       7015 |
    '7 ' ignored
    '7 ' ignored
    '7 ' ignored
    '7 ' ignored
    '7 ' ignored
    '7 ' ignored
    '7 ' ignored
    '7 ' ignored
    '7 ' ignored
    '7 ' ignored
    '7 ' ignored
    '7 ' ignored
    '7 ' ignored
    '7 ' ignored
    '7 ' ignored
         8 |      9 |       3734 |
         8 |     10 |       6757 |
    '8 ' ignored
    '8 ' ignored
    '8 ' ignored
    '8 ' ignored
    '8 ' ignored
    '8 ' ignored
    '8 ' ignored
    '8 ' ignored
    '8 ' ignored
    '8 ' ignored
    '8 ' ignored
    '8 ' ignored
    '8 ' ignored
    '8 ' ignored
    '8 ' ignored
         9 |     10 |      10337 |
    '9 ' ignored
    '9 ' ignored
    '9 ' ignored
    '9 ' ignored
    '9 ' ignored
    '9 ' ignored
    '9 ' ignored
    '9 ' ignored
    '9 ' ignored
    '9 ' ignored
    '9 ' ignored
    '9 ' ignored
    '9 ' ignored
    '9 ' ignored
    '9 ' ignored
    '10' ignored
    '10' ignored
    '10' ignored
    '10' ignored
    '10' ignored
    '10' ignored
    '10' ignored
    '10' ignored
    '10' ignored
    '10' ignored
    '10' ignored
    '10' ignored
    '10' ignored
    '10' ignored
    '10' ignored
    '11' ignored
    '11' ignored
    '11' ignored
    '11' ignored
    '11' ignored
    '11' ignored
    '11' ignored
    '11' ignored
    '11' ignored
    '11' ignored
    '11' ignored
    '11' ignored
    '11' ignored
    '11' ignored
    '12' ignored
    '12' ignored
    '12' ignored
    '12' ignored
    '12' ignored
    '12' ignored
    '12' ignored
    '12' ignored
    '12' ignored
    '12' ignored
    '12' ignored
    '12' ignored
    '12' ignored
    '13' ignored
    '13' ignored
    '13' ignored
    '13' ignored
    '13' ignored
    '13' ignored
    '13' ignored
    '13' ignored
    '13' ignored
    '13' ignored
    '13' ignored
    '13' ignored
    '14' ignored
    '14' ignored
    '14' ignored
    '14' ignored
    '14' ignored
    '14' ignored
    '14' ignored
    '14' ignored
    '14' ignored
    '14' ignored
    '14' ignored
    '15' ignored
    '15' ignored
    '15' ignored
    '15' ignored
    '15' ignored
    '15' ignored
    '15' ignored
    '15' ignored
    '15' ignored
    '15' ignored
    '16' ignored
    '16' ignored
    '16' ignored
    '16' ignored
    '16' ignored
    '16' ignored
    '16' ignored
    '16' ignored
    '16' ignored
    '17' ignored
    '17' ignored
    '17' ignored
    '17' ignored
    '17' ignored
    '17' ignored
    '17' ignored
    '17' ignored
    '18' ignored
    '18' ignored
    '18' ignored
    '18' ignored
    '18' ignored
    '18' ignored
    '18' ignored
    '20' ignored
    '20' ignored
    '20' ignored
    '20' ignored
    '20' ignored
    '20' ignored
    '21' ignored
    '21' ignored
    '21' ignored
    '21' ignored
    '21' ignored
    '22' ignored
    '22' ignored
    '22' ignored
    '22' ignored
    '25' ignored
    '25' ignored
    '25' ignored
    '31' ignored
    '31' ignored
    '41' ignored
            2       3       5       6       7       8       9       10      11      12      13      3       8       2293232 3998072
    18      2292940 130     2293728 2089938456      2089944432      -1      5       4006960 2359296 259     2372520 16960   9092
    5835    5505    9203    1479    6       2372520 2293208 2089136298      130     16746   3288    5889    5538    9255    1619
    7       2009064740      4005712 2009064790      4005712 2293292 2009072528      1       2009072557      29      2009267360
    8       29      2293252 4006960 2293400 2009095316      14399   15994   16029   12965   16485   9       29      1365    20090647
    40      4005712 2009064790      4005712 9040    8732    12396   2103    10      2009267360      0       59      2293348 20091434
    87      2293496 2009095316      537     3367    7015    11      1       4013112 59      1       2009267360      4215165 2293436
    2009149723      3734    6757    12      2009119121      17      2293512 2009143501      1       2009267360      2009143487
    1       592     10337   13      1       2293468 0       2293728 2293512 4203514 4215165 2293560 4202351 4251692SYSALLOC min=4294
    Pas de Wi-Fi à la maison : CPL

  14. #34
    BnY
    BnY est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 160
    Points : 34
    Points
    34
    Par défaut
    oki mais pourquoi 26 ?? il y a 23 aeroports ..!

  15. #35
    BnY
    BnY est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 160
    Points : 34
    Points
    34
    Par défaut
    en fait y a des aeroports qui n'existent pas, enfin seuls 23 numeros existent mais ils ne vont pas de 1 a 23 lool .. je sais pas si ca joue ..

  16. #36
    BnY
    BnY est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 160
    Points : 34
    Points
    34
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
                for (i = 0, j = 0;i < MAX_AEROPORTS;i++)
                {
                   tableau[j][0] = tab[i];
                   tableau[0][j] = tab[i];
                   j++;
                }

    la dedans j n'est pas balisé mais bon je vois pas pourquoi il depasserait MAX_AERO alors que i ne le dépasse pas et qu'ils s'incrementent ensemble ...

  17. #37
    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 BnY
    oki mais pourquoi 26 ?? il y a 23 aeroports ..!
    Je fatigue. Erreur de ma part...
    Pas de Wi-Fi à la maison : CPL

  18. #38
    BnY
    BnY est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 160
    Points : 34
    Points
    34
    Par défaut
    euhh quelle protection ?? et juste pour savoir dans les #if : lesquels je peux enlever ( a part ceux du debut pour les #define que j'ai corrigés )
    bon j'ai toujours le meme probleme et je pense bien que les indices sont inférieurs a MAX_AEROP, ca pourrait venir d'autre chose ??

    comme je t'ai precisé plus haut y a une ligne que le debogage me fleche en jaune qui apparement marche pas, mais en meme temps l'affichage s'arrete avant la fin donc je sais meme plus par ou ca peut venir .. :s

  19. #39
    BnY
    BnY est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 160
    Points : 34
    Points
    34
    Par défaut
    oki lol c'est pas moi qui te ferait la lecon pour la fatigue lol ca m'arrive souvent :p

  20. #40
    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 BnY
    en fait y a des aeroports qui n'existent pas, enfin seuls 23 numeros existent mais ils ne vont pas de 1 a 23 lool .. je sais pas si ca joue ..
    Le noeud du problème est là. c'est un problème d'analyse.

    Au départ, tu établis une liste des aéroports avec des numéros arbitraires. Ces informations sont rangées à des index bien précis du tableau.

    Il y a 23 aéroports, donc le tableau fait 23, mais les numéros vont de 1 à ... (> 23).

    Or tu as créé le tableau des corespondances en te basant sur le nombre d'aeroports possibles soit 23 x 23.

    L'erreur est d'utiliser le numéro d'aeroport lu dans la table de correspondance comme index de ce tableau. En effet, il n'y a pas de relation directe entre le numéro d'aéroport et l'index.

    Il faut donc chercher l'index en fonction du numéro d'aéroport. Pour ça, il suffit de trouver l'aéroport dans son tableau. Sa position donne l'index.

    Une petite fonction serait la bienvenue...

    Il n'y a rien de mystérieux là dedans. Il suffit de prendre 10 minutes pour réflechir, ce que j'ai fait (ok, 2 minutes..)...
    Pas de Wi-Fi à la maison : CPL

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/04/2007, 11h30
  2. Réponses: 3
    Dernier message: 01/03/2006, 15h23
  3. [Apache] Erreur dans mes scripts CGI
    Par GLDavid dans le forum Apache
    Réponses: 2
    Dernier message: 28/08/2004, 06h14
  4. [CR] Oubli dans mes jours
    Par sbis dans le forum SAP Crystal Reports
    Réponses: 10
    Dernier message: 06/08/2004, 14h07
  5. [Process] Probleme d'execution d'un prog c dans un prog java
    Par Elmilouse dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 08/06/2004, 14h26

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