is, isw routines...[résolu]

is, isw routines...[résolu] - C++ - Programmation

Marsh Posté le 14-04-2003 à 15:39:45    

J'ai regardé dans msdn les fonctions is et isw. N'existe t il pas une fonction genre isnumeric() de php, qui évalue la chaine entière et non pas un seul caractère.  
En fait, j'aurais besoin de cette fonction pour m'indiquer si le contenu d'un CEdit (MFC) est bien un nombre (positif ou négatif.. c ca le pb...). Comment faire (sans découper la chaine...) ?


Message édité par backdafuckup le 15-04-2003 à 09:42:22
Reply

Marsh Posté le 14-04-2003 à 15:39:45   

Reply

Marsh Posté le 14-04-2003 à 15:47:25    

backdafuckup a écrit :

J'ai regardé dans msdn les fonctions is et isw. N'existe t il pas une fonction genre isnumeric() de php, qui évalue la chaine entière et non pas un seul caractère.  
En fait, j'aurais besoin de cette fonction pour m'indiquer si le contenu d'un CEdit (MFC) est bien un nombre (positif ou négatif.. c ca le pb...). Comment faire (sans découper la chaine...) ?


 
ah ben ca c tout con, tu regle ca dans le classe wizard (eg tu associe une variable a ton edit, tu donnes les bornes min et max  et pis  vala)
 

Reply

Marsh Posté le 14-04-2003 à 15:50:29    

chrisbk a écrit :


 
ah ben ca c tout con, tu regle ca dans le classe wizard (eg tu associe une variable a ton edit, tu donnes les bornes min et max  et pis  vala)
 
 


 
tiens j'y avais pas pensé....  :D  
 
Merci  :hello:
 
 
edit : Mais une petite remarque quand même, mon but n'est pas de fixer une limite à l'utilisateur (vu que ce sont des tensions donc il les règles comme il veut), mais simplement de vérifier que ce qu'il rentre dans les cases (7 en tout) est bien un nombre positif ou négatif... mais bon, pour l'instant je v faire comme ca, mais faut que j'en parle à ma chef... :/ elle risque de peut etre être moins d'accord..
 
 
 
edit2 : et en plus ce que tu m'as dit c cool, mais ca empeche pas l'utilisateur de rentrer une lettre.... (et ca met 0 à l'affichage de la valeur après, ce qui pas forcément bon...)


Message édité par backdafuckup le 14-04-2003 à 15:58:17
Reply

Marsh Posté le 14-04-2003 à 16:08:16    

ben chez moi si je mets une lettre, a la prochaine action que j'effectue, le programme me dit automatiquement "please enter an integer". Donc pas de probleme de ce cote la.
 
Et pour tes valeurs limite, tu n'es pas oblige de les fixer. Tu peux laisser les cases vides. La seule chose que tu ne peux faire, c'est d'en fiser une et pas l'autre. C'est tout ou rien

Reply

Marsh Posté le 14-04-2003 à 16:10:13    

polo021 a écrit :

ben chez moi si je mets une lettre, a la prochaine action que j'effectue, le programme me dit automatiquement "please enter an integer". Donc pas de probleme de ce cote la.
 
Et pour tes valeurs limite, tu n'es pas oblige de les fixer. Tu peux laisser les cases vides. La seule chose que tu ne peux faire, c'est d'en fiser une et pas l'autre. C'est tout ou rien


 
t'en as de la chance toi... !
Moi si je mets une lettre, il dit rien, mais en plus il remplace la valeur par 0 !!! :heink:

Reply

Marsh Posté le 14-04-2003 à 16:14:20    

backdafuckup a écrit :


 
t'en as de la chance toi... !
Moi si je mets une lettre, il dit rien, mais en plus il remplace la valeur par 0 !!! :heink:  


[:spamafote]
 
essaye de mettre un bouton a cote. Tu saisis une lettre et tu cliques sur le bouton. Y se passe quoi?

Reply

Marsh Posté le 14-04-2003 à 16:19:22    

polo021 a écrit :


[:spamafote]
 
essaye de mettre un bouton a cote. Tu saisis une lettre et tu cliques sur le bouton. Y se passe quoi?


 
Ben rien.  
Je fais une vérification juste pour savoir si le champ est vide ou non (comparaison avec "" ).
 
C'est une fenetre de paramétrage. Si je tape une lettre, la fenetre se ferme correctement, et quand je vais sur la fenetre de consultation et que je fais "mise à jour des valeurs", il me met, la ou j'ai entré une lettre, 0... c'est tout...

Reply

Marsh Posté le 14-04-2003 à 16:24:49    

Ah mais non c bon en fait.
J'avais oublie le UpdateData(TRUE) :D
La maintenant il  me dit "veuillez taper un nombre entier" (moi je développe en français...
Mais par contre, du coup, comme il y a 7 variables, il me les mets toutes à 0 dès qu'il rencontre une erreur de ce type la...
Ya pas un moyen de parametrer ca, ou bien de faire un truc du genre "OnError", ou une gestion d'exception (je sais pas le faire ca.. :/)

Reply

Marsh Posté le 14-04-2003 à 16:34:53    

backdafuckup a écrit :

Ah mais non c bon en fait.
J'avais oublie le UpdateData(TRUE) :D
La maintenant il  me dit "veuillez taper un nombre entier" (moi je développe en français...
Mais par contre, du coup, comme il y a 7 variables, il me les mets toutes à 0 dès qu'il rencontre une erreur de ce type la...
Ya pas un moyen de parametrer ca, ou bien de faire un truc du genre "OnError", ou une gestion d'exception (je sais pas le faire ca.. :/)


ben chez moi, il me selectionne (affiche en bleu) l'edit ou est l'erreur en commencant par celui qui a ete cree en premier et ainsi de suite.
 
Mais sinon rien ne t'empeches de faire un truc a la main comme:
OnChange sur ton edit et tu verifies si le contenu est < le maximum des entier et > que le minimum des entiers. Ces deux valeurs sont definies mais je ne sais plus ou. A toi de les chercher
 
EDIT : limits.h INT_MAX et INT_MIN


Message édité par polo021 le 14-04-2003 à 16:42:25
Reply

Marsh Posté le 14-04-2003 à 16:42:34    

polo021 a écrit :


ben chez moi, il me selectionne (affiche en bleu) l'edit ou est l'erreur en commencant par celui qui a ete cree en premier et ainsi de suite.
 
Mais sinon rien ne t'empeches de faire un truc a la main comme:
OnChange sur ton edit et tu verifies si le contenu est < le maximum des entier et > que le minimum des entiers. Ces deux valeurs sont definies mais je ne sais plus ou. A toi de les chercher
 


 
ah ben encore une fois t'as de la chance, moi, comme code, j'ai ca :  
 

Code :
  1. UpdateDate(TRUE);
  2. Objet->SetValeur(ContenuDuCEdit1);
  3. Objet->SetValeur(ContenuDuCEdit2);
  4. ...
  5. EndDialog(...);


 
Voila, donc dès qu'il plante (sur UpdateDate je pense, il set toutes les valeurs à 0 (je lui ai rien demandé moi...) et il execute EndDialog(); Donc mes valeurs sont mises à 0.
Et je le répète, je veux pas de min et de max, je veux juste que ce soit pas une lettre qui soit tapée, et si c une lettre, alors la fenetre reste, on saisit tant que c'est pas un entier !!
 
 
Edit : je sens venir le découpage de chaine et l'utilisation de isdigit()..... :/ fais chier..  j'voulais pas.... :(


Message édité par backdafuckup le 14-04-2003 à 16:45:27
Reply

Marsh Posté le 14-04-2003 à 16:42:34   

Reply

Marsh Posté le 14-04-2003 à 16:51:03    

ben c'est assez bizarre parce que si tu veux decouper ta chaine du vas quand meme devoir faire le UpdateData(TRUE), non? et donc ca va encore planter si l'user a entre une lettre.

Reply

Marsh Posté le 14-04-2003 à 16:54:24    

polo021 a écrit :

ben c'est assez bizarre parce que si tu veux decouper ta chaine du vas quand meme devoir faire le UpdateData(TRUE), non? et donc ca va encore planter si l'user a entre une lettre.


oui, mais à ce moment la, je me servirais pas des 'member variable'...  
T'as vraiment aucune autre idée ?
Et les autres qui m'ont autrefois aidé vous avez pas une solution ?  [:ruisseau de larmes]

Reply

Marsh Posté le 14-04-2003 à 16:59:31    

backdafuckup a écrit :


T'as vraiment aucune autre idée ?


si, tu mets un label devant ton Edit box "Entrez un entier"
Non serieux, c'en est fini pour moi, je suis pas assez malin non plus pour ca [:sisicaivrai]
deux nuls ensemble ca a jamais fait un pro[:spamafote]

Reply

Marsh Posté le 14-04-2003 à 17:02:29    

polo021 a écrit :


si, tu mets un label devant ton Edit box "Entrez un entier"
Non serieux, c'en est fini pour moi, je suis pas assez malin non plus pour ca [:sisicaivrai]
deux nuls ensemble ca a jamais fait un pro[:spamafote]


 
Ben t pas nul, moi je le suis, toi t'essaies de m'aider !! Donc tu fais ce que tu peux...
 
Mais c vrai que l'aide de gens qui s'y connaissent mieux que nous serait la bienvenue...
 
Harkonnen, visualC++, antp, chrisbk, et les autres.. vous faites quoi ? Vous ignorez mes topics ???
 
edit :

polo021 a écrit :


si, tu mets un label devant ton Edit box "Entrez un entier"


 [:aras qui rit]  :lol:  Ouais pk pas....
Mais j'aurais peur que ma chef de projet fasse un peu la gueule...


Message édité par backdafuckup le 14-04-2003 à 17:03:45
Reply

Marsh Posté le 14-04-2003 à 17:04:53    

pour la suite ne up pas ton topic toutes les 5 minutes sinon c'est sur que ca va pas plaire, donc pas d'aide en perspective :o

Reply

Marsh Posté le 14-04-2003 à 17:06:46    

polo021 a écrit :

pour la suite ne up pas ton topic toutes les 5 minutes sinon c'est sur que ca va pas plaire, donc pas d'aide en perspective :o  


de toute facon, moi je m'en vais, ma journée est finie..
Réponde qui veut bien, je regarderais ca demain matin...
Merci polo en tout cas, meme si tu m'as pas aidé, au moins t solidaire... ++  :hello:


Message édité par backdafuckup le 14-04-2003 à 17:07:03
Reply

Marsh Posté le 15-04-2003 à 08:11:13    

pis genre tester le code de retour de UpdateData poursavoir si ca a marche ou pas ?

Reply

Marsh Posté le 15-04-2003 à 08:53:56    

chrisbk a écrit :

pis genre tester le code de retour de UpdateData poursavoir si ca a marche ou pas ?  


 
c'est à dire ?
genre un truc comme ca ?
 

Code :
  1. if (UpdateData(TRUE)
  2. {
  3.    EndDialog();
  4. }
  5. else
  6. {
  7. }


 
ca marcherait ca ?

Reply

Marsh Posté le 15-04-2003 à 09:02:24    

non il manque une parenthese a la fin du if
 
(bah essaye quoi :O)

Reply

Marsh Posté le 15-04-2003 à 09:34:54    

chrisbk a écrit :

non il manque une parenthese a la fin du if
 
(bah essaye quoi :O)


 
Trop fort, ca marche....
Merci monsieur !  :hello:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed