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�
dans le premier cas la condition n'est jamais vrai, dans le second elle est toujours vrai.
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) { ---- }
exemple du fichier
exemple d'un argument
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5 6360144 MZ01MA0 29981132 KS01MCO 38204659 A213MA0 79362290 OZ01MCO
J'avoue ne pas comprendre pourquoi cela ne fonction pas, est'il possible de comparer des chaines string avec l'instruction if ?
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 MZ01MA0
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*/
Partager