Bonjour,

J'essai de réalisé un petit pgm qui recherche un index (dans un fichier) correspondant à l'argument passé lors de l'exécution du pgm.

Pour trouver cet index, je compare l'argument avec une portion de string du fichier. Cependant lors de la comparaison par l'instruction if, celui-ci ne fonctionne jamais (pas dégalité trouvé), bien qu'a l'affichage de l'argument et du string il soient identiques.
j'ai testé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
if (argv[1] == pdeb)
{
----
}
/* est egalement */
if (argv[1] = pdeb)
{
----
}
dans le premier cas la condition n'est jamais vrai, dans le second elle est toujours vrai.

exemple du fichier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
6360144 MZ01MA0 
29981132 KS01MCO
38204659 A213MA0
79362290 OZ01MCO
exemple d'un argument
J'avoue ne pas comprendre pourquoi cela ne fonction pas, est'il possible de comparer des chaines string avec l'instruction if ?
voici mon 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
 
#include <stdio.h>               
#include <stdlib.h>              
#include <errno.h>               
#include <string.h>                         
int main(int argc, char *argv[]) 
{            
int rec = 0;                                    /*compteur de reccord */
int c = 0;                                                 /*compteur */
int LenI = 0;                                 /* taille de l'enreg    */
int LenC = 0;                                 /* taille des parametres*/
int Len = 0;                                     /* taille de l'index */
char *pdeb = NULL;                                       /* pointeur  */
char LPARCPC[20]="";                                /* nom LPAR + CPC */
char RECINDX[85] = "";                            /* enreg du fichier */
char INDEX[20] = "";                               /* INDEX de la MIB */
FILE *findx;                       /* pointeur pour fichier parametre */
findx = fopen("dd:SYSMIB","r");               /* ouverture du fichier */
if (findx != NULL)                                  /* test ouverture */
 {                                                                      
  printf(" argv[1]  :%s\n",argv[1]);                                    
  while(fgets(RECINDX,80,findx) != NULL)             /* lit le fichier*/
    {                                                                    
       c = 0;                                      /* init du compteur */
       pdeb = strchr(RECINDX,' ');                 /*recherche LPARCPC */
       char *cn = strchr(pdeb,'\n');                  /*recherche '\n' */
       if ( cn != NULL)                                                  
        {                                                                
         *cn = '\0';                                                     
        }                                                                
       pdeb = pdeb+1;      /* avance d'un carctere pour eviter  espace*/ 
       printf(" LPAR CPC :%s\n",pdeb);                                   
       if (argv[1] == pdeb)                                              
      {                                                                
         printf(" coucou \n ");                                        
         LenI = strlen(RECINDX);                /* taille du reccord */
         LenC = strlen(pdeb);                   /* taille LPARCPC */   
         Len = LenI - LenC;                     /* taille de l'index */
         printf(" rec : %s\n",RECINDX);                                
         for (c=0;c<Len;c++)                                           
           {                                                           
           INDEX[c] = RECINDX[c];         /* constitution de lindex */ 
           }                                                           
         printf("INDEX : %s\n",INDEX);                                 
      } /* fin du if argv[1] */                                        
   }                                                                   
 }                                                                     
 return(0);                                                            
} /* fin du main*/