begin process at 2012 05 28 22:05:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Comparaison avec StrCmp()


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Comparaison avec StrCmp()

mercredi 11 juin 2003 à 15:08:36 | Comparaison avec StrCmp()

lcampeur

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 :

//Valider
CString tempIP ;
char * reTempIP ;
int pareil = 1;
bool ident ;

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
mercredi 11 juin 2003 à 15:42:00 | Re : Comparaison avec StrCmp()

highcobra

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 ???

High_Cobra ;)


-------------------------------
Réponse au message :
-------------------------------

> 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 :
>
> //Valider
> CString tempIP ;
> char * reTempIP ;
> int pareil = 1;
> bool ident ;
>
> 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
mercredi 11 juin 2003 à 16:58:08 | Re : Comparaison avec StrCmp()

lcampeur

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 !

-------------------------------
Réponse au message :
-------------------------------

> 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 ???
>
> High_Cobra ;)
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > 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 :
> >
> > //Valider
> > CString tempIP ;
> > char * reTempIP ;
> > int pareil = 1;
> > bool ident ;
> >
> > 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
>
mercredi 11 juin 2003 à 18:13:55 | Re : Comparaison avec StrCmp()

payen

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 ???



-------------------------------
Réponse au message :
-------------------------------

> 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 !
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > 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 ???
> >
> > High_Cobra ;)
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > 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 :
> > >
> > > //Valider
> > > CString tempIP ;
> > > char * reTempIP ;
> > > int pareil = 1;
> > > bool ident ;
> > >
> > > 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
> >
>
jeudi 12 juin 2003 à 08:52:02 | Re : Comparaison avec StrCmp()

lcampeur

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 !



-------------------------------
Réponse au message :
-------------------------------

> 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 ???
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > 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 !
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > 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 ???
> > >
> > > High_Cobra ;)
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > 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 :
> > > >
> > > > //Valider
> > > > CString tempIP ;
> > > > char * reTempIP ;
> > > > int pareil = 1;
> > > > bool ident ;
> > > >
> > > > 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
> > >
> >
>
jeudi 12 juin 2003 à 12:10:56 | Re : Comparaison avec StrCmp()

lcampeur

Bon, bin g réussi, j'au utiliser 'strcmp' (de string.h) au lieu de 'StrCmp' (de shlwapi.h) et ça marche !!!!



-------------------------------
Réponse au message :
-------------------------------

> 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 !
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > 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 ???
> >
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > 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 !
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > 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 ???
> > > >
> > > > High_Cobra ;)
> > > >
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > 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 :
> > > > >
> > > > > //Valider
> > > > > CString tempIP ;
> > > > > char * reTempIP ;
> > > > > int pareil = 1;
> > > > > bool ident ;
> > > > >
> > > > > 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
> > > >
> > >
> >
>


Cette discussion est classée dans : ip, comparaison, char, borne, retempip


Répondre à ce message

Sujets en rapport avec ce message

Trie liste de saisit sans passer par une insertion [ par Nexouille ] Voila je dois a partir d'un fichier prendre toute les ip qui s'y trouve dont on ne connait pas le nombre et je dois compter combien de fois elles appa Socket -> Ip [ par CyberP ] Comment obtenir l'adresse ip (sous forme de char* : xxx.xxx.xxx.xxx) à partir d'un objet socket (je ne veut pas d'objet SOCK_ADDR mais une ip en char* Sniffing - raw socket [ par krum ] J'ai essayé de coder un programme capable de me donner la description de l'en tete IP et TCP des packets que je reçois d'une certaine IP,mais lorsque Je n'y comprend plus rien :-( [ par ChrOnOs83 ] Slt à ts,tout dabor je suis dsl mais je ne savai pa tro comen resumé mon pb en quelque mot et c pr cela ke je né pa fai un sujet clair.en realité jaim "Comparaison" pointeur [ par LordBob ] Bonjour a tous,voila j'ai des petits problèmes avec une application et mes pointeurs... en fait je récupéren en début de programme l'adresse IP d'une envoi de paquet ip [ par sendouda ] Bonjour;j'ai écrit un programme qui permet d'envoyer des paquets ip à une destination.mais quand j'ai voulu le sniffer j'ai pas pu le capter.J'ai beso urgent:envoi paquet [ par sendouda ] Bonjour;j'ai écrit un programme qui permet d'envoyer des paquets ip à une destination.mais quand j'ai voulu le sniffer j'ai pas pu le capter.J'ai beso socket RAW ICMP - fonctionnement et implémentation... [ par smirnoff69ice ] Salut, Je suis sur un projet et je dois simuler l'envoi de paquets ICMP sur le réseau. J'ai déjà fait un petit programme de test (repris en partie dep pb abonnement pour socket multicast [ par Spiffou ] bonjour à tous,je rencontre un problème de programmation réseau sur les sockets (c++ sous visual studio).Je cherche à programmer une classe de gestion comparaison de chaine de caracteres [ par romainbisson ] Bonjour,je voudrais comparer une chaine de caractere avec le caractere \n, si ils sont identitiques cela m'incremente un nombre.    char c;    char l


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,936 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales