Vérifier si une chaîne est numérique (de type Double) ? [Résolu]

cs_kabakas 46 Messages postés samedi 19 janvier 2008Date d'inscription 7 mai 2011 Dernière intervention - 12 févr. 2008 à 18:39 - Dernière réponse : cs_kabakas 46 Messages postés samedi 19 janvier 2008Date d'inscription 7 mai 2011 Dernière intervention
- 18 févr. 2008 à 12:37
Salut

Je veux savoir comment vérifier si une chaîne dans un TEdit est numérique ou non ?
Delphi 7

kabakas
Afficher la suite 

8 réponses

Répondre au sujet
BernieNoel68 97 Messages postés vendredi 12 octobre 2007Date d'inscription 20 novembre 2009 Dernière intervention - 12 févr. 2008 à 18:47
+3
Utile
Bonjour,

Si jamais tu as Delphi 6 ou supérieur, tu peut regarder du cote de TryStrToFloat ou TryStrToInt qui te permet de vérifier que la valeur entrée est bien un réèl  / un entier.

Bon courage!
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de BernieNoel68
BernieNoel68 97 Messages postés vendredi 12 octobre 2007Date d'inscription 20 novembre 2009 Dernière intervention - 13 févr. 2008 à 15:41
+3
Utile
Je n'ai pas Delphi sous la main, donc je vais plongé dans mes souvenirs!

Imaginons que ta valeur soit dans Edit1:

----------------------------------------------------------
var value: float;

if ( TryStrToFloat( Edit1.Text, value) ) then
begin
 // Edit1 contient bien un réèl, et la valeur est stockée dans value
end
----------------------------------------------------------
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de BernieNoel68
BernieNoel68 97 Messages postés vendredi 12 octobre 2007Date d'inscription 20 novembre 2009 Dernière intervention - 13 févr. 2008 à 18:14
+3
Utile
A prioris on est ici sur un forum Delphi, mais tu as de la chance, j'ai C++ Builder 6 sous la main !

Et ça marche egalement  (hormis les guillemets au lieu des simples côtes):

double value;
{
  if (TryStrToFloat(Edit1->Text, value)) Label1->Caption = "ok";
  else Label1->Caption = "non";
}
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de BernieNoel68
BernieNoel68 97 Messages postés vendredi 12 octobre 2007Date d'inscription 20 novembre 2009 Dernière intervention - 14 févr. 2008 à 08:49
+3
Utile
Je ne sais pas d'où vien l'erreur,  chez moi ça marche sans problème!

Créer un nouveau projet, place sur ta fiche principale juste 3 choses : 1 TEdit, 1 TLabel et 1 TButton.

et place ce code dans la fonction du bouton:

---------------------------------------------------------------
double value;
{
  if (TryStrToFloat(Edit1->Text, value)) Label1->Caption = "ok";
  else Label1->Caption = "non";
}
---------------------------------------------------------------
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de BernieNoel68
cs_kabakas 46 Messages postés samedi 19 janvier 2008Date d'inscription 7 mai 2011 Dernière intervention - 13 févr. 2008 à 15:11
0
Utile
Merci BernieNoel68
Veux-tu me donner un exemple d'utilisation de TryStrToFloat, svp

et merci encore !!
Commenter la réponse de cs_kabakas
cs_kabakas 46 Messages postés samedi 19 janvier 2008Date d'inscription 7 mai 2011 Dernière intervention - 13 févr. 2008 à 17:24
0
Utile
Merci

je l'ai testé sous Delphi7 et c'est bien passé :

------------------------
var value: double;
begin
  if TryStrToFloat(Edit1.Text, value) then label1.Caption := 'ok'
  else label1.Caption := 'non'
end;
-------------------------

mais, je n'arrive pas à le faire sous C++ Builder 6 :
------------------------
double value;
{
  if (TryStrToFloat(Edit1->Text, value)) Label1->Caption = 'ok';
  else Label1->Caption = 'non';
}
-------------------------

kabakas
Commenter la réponse de cs_kabakas
cs_kabakas 46 Messages postés samedi 19 janvier 2008Date d'inscription 7 mai 2011 Dernière intervention - 13 févr. 2008 à 21:05
0
Utile
Je l'ai fais, mais erreur à l'exécution : [Lieur Erreur fatale] Fatal: Expected a file name:

je crois que ça vient de #include <????>
Commenter la réponse de cs_kabakas
cs_kabakas 46 Messages postés samedi 19 janvier 2008Date d'inscription 7 mai 2011 Dernière intervention - 18 févr. 2008 à 12:37
0
Utile
merci bien BernieNoel68, ça a marché !!
Commenter la réponse de cs_kabakas

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.