cs_lcampeur
Messages postés19Date d'inscriptionvendredi 6 juin 2003StatutMembreDernière intervention 3 juillet 2003
-
11 juin 2003 à 15:08
cs_lcampeur
Messages postés19Date d'inscriptionvendredi 6 juin 2003StatutMembreDernière intervention 3 juillet 2003
-
12 juin 2003 à 12:10
Bonjour, je souhaite effectuer une comparaison, j'ai un programme contenant une structure borne contenant:
1- char NomBorne [20]
2- char IP[16]
Mon programme doit réferencé un certain nombre de borne relié en réseau. G une fenetre Gestion sur laquele est présente 2 ListBox (1 Nom & 1 IP) et plusieurs bouton dont Ajouter.
Lorsque j'ajoute une borne, je dois lui rentré son Nom et son IP, puis clické sur validé, qui met les donné en Ram avant de cliké sur Quitter pour enregistrer les donné sur le dur (fstream). Lors du click sur Valider, je doit vérifié que l'adresse IP n'est pas déjà utilisé. Pour cela, j'ai fait :
reTempIP = new char [20] ;
GetDlgItemText(EdtIP, tempIP)
//copie le texte de la zone de text dans la variable
for(int y =0; y <= NbBornes; y++){
//NbBorne = Nombre bornes référencées
strcpy(reTempIP, objBornes[y].IP) ;
pareil = strcmp (reTempIP, tempIP) ; if(pareil 0) ident false ;
} //vérifie si l'@ IP existe déjà, si oui, ident = false
G une erreur là dedans. Qd je click sur valider (de ajout) si il n'y a pas encore de borne référencé, cela fonctionne, si j'ai déjà référencé des bornes, le prgm plante (et veux envoyer un message à microsoft...)
Please, HELP !!!
lcampeur
highcobra
Messages postés122Date d'inscriptionlundi 31 mars 2003StatutMembreDernière intervention20 avril 2005 11 juin 2003 à 15:42
Pkoi faire tout ça :
pareil = strcmp (reTempIP, tempIP) ;if(pareil 0) ident false ;
plutot que ça :
ident = strcmp (reTempIP, tempIP) ;
et pkoi ne pas faire une boucle while pour tester tes ip et sortir de la boucle des que tu trouves une ip qui correspond ??? Ca serait mieux que le for non ???
cs_lcampeur
Messages postés19Date d'inscriptionvendredi 6 juin 2003StatutMembreDernière intervention 3 juillet 2003 11 juin 2003 à 16:58
En fait, je ne veux pas de 'while' pour une raison simple, c'est que le but c'est justement de ne pas avoir d'@ IP identique, cette boucle ne sert que de vérif et si je clak un while, bin...
Ensuite, ident est un 'bool' et la fonction strcmp retourne un 'int', voilà pkoi je passe par le 'si'.
Sinon, j'ai changé un peu, et supprimé la variable reTempIP :
j'ai fait tout de suite la comparaison :
strCmp(objBornes[y].IP, tempIP) ;
Cela ne compare toujours pas comme je le veux. Dans le débogage, je met 2 IP identiques et le prgm ne les repere pas !
cs_payen
Messages postés252Date d'inscriptionmercredi 25 octobre 2000StatutMembreDernière intervention 1 mai 2005 11 juin 2003 à 18:13
je vais peut etre dire une connerie, mais les chaines comparees sont identiques si la fonction strcmp retourne 0.
donc, si les cj=haines sont id, pareil est egal a 0 et ident doit etre a true ...
j'dis une connerie ou pas au final ???
cs_lcampeur
Messages postés19Date d'inscriptionvendredi 6 juin 2003StatutMembreDernière intervention 3 juillet 2003 12 juin 2003 à 08:52
Si les chaines sont id. la fonction retourne un 0 et avec le 'if' ident doit passer a 'true' (en fait, il devai passer à 'false' au départ, mais c vrai que 'true' c mieu =)). Mais n'empeche que ça marche pas !! Je sais pas si g des caractères invisibles à la fin, mais je ne pense pas que ce soit ça car g testé avec la fonction StrCmpN('chaine1', 'chaine2','n') (n étant le nombre de caracteres a tésté à partir du début). Cela ne fonctionnai pas non-plus !
Vous n’avez pas trouvé la réponse que vous recherchez ?