Bonjour à tous, voilà mon petit souci : J'aimerai lire un fichier, récupérer les informations en les triant... Pour ce qui est de la lecture et de la récupération pas de soucis, mais c'est pour le tri que les choses se compliquent. J'aimerai comparer deux chaines de caractères qui doivent et qui à priori, sont la plus part du temps identiques. Malheureusement, je ne sais pas pourquoi je ne rentre pas dans mon if de condition. Je vous montre le code ça sera certainement plus clair :

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
 
    char motcle[12];/* variable qui va contenir le mot cle de ligne lue */
    char val[18];  /* variable qui va contenir la valeur */
    char * sep;    /* variable qui va contenir le separateur */
    motcle[12]= '\0';
    val[18]= '\0';
    printf("Entree P202 \n");
    /* Recherche du separateur dans la chaine */
    printf("Valeur de ligne>%s<\n", ligne);
    sep = strchr(ligne, '=');
    printf("Valeur de sep>%d<\n", sep);
 
    /* Initialisation des variables avec les valeurs correspondantes */
    /*motcle = strncpy(l_T_cartes[i].Mot_cle, ligne, 11);*/
    /* val    = strcpy (l_T_cartes[i].Valeur, sep +1); */
    strncpy(motcle, ligne, 12);
    printf("Valeur de motcle >%s< \n", motcle);
    strcpy (val, sep +1);
    printf("Valeur de val >%s< \n", val);
 
    /*Test de la ligne et des differentes valeurs*/
 
    /* Verification du mot cle et action en consequences */
    if (strcmp(motcle, "UNIT DSNAME ")== 0)
    {
        printf("Lecture de %s \n", motcle);
        strncpy(l_T_cartes[0].Valeur, val, 6);
        l_T_cartes[0].gere   = 'Y';
        printf("Attribution de Unit : <%s> \n", l_T_cartes[0].Valeur);
        printf("Gestion de UNIT DSNAME : %c \n", l_T_cartes[0].gere);
        return(g_rc);
    }
Le " if (strcmp(motcle, "UNIT DSNAME ")== 0)" n'est donc pas valable, puisque je n'ai jamais l'affichage du "printf("Lecture de %s \n", motcle);"... Es ce que quelqu'un aurait une idée pour m'aider ou alors une erreur que je n'ai pas vu.

D'avance merci de votre aide