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

Signaler
Messages postés
46
Date d'inscription
samedi 19 janvier 2008
Statut
Membre
Dernière intervention
7 mai 2011
-
Messages postés
46
Date d'inscription
samedi 19 janvier 2008
Statut
Membre
Dernière intervention
7 mai 2011
-
Salut

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

kabakas

8 réponses

Messages postés
92
Date d'inscription
vendredi 12 octobre 2007
Statut
Membre
Dernière intervention
20 novembre 2009
1
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!
Messages postés
92
Date d'inscription
vendredi 12 octobre 2007
Statut
Membre
Dernière intervention
20 novembre 2009
1
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";
}
Messages postés
92
Date d'inscription
vendredi 12 octobre 2007
Statut
Membre
Dernière intervention
20 novembre 2009
1
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";
}
---------------------------------------------------------------
Messages postés
92
Date d'inscription
vendredi 12 octobre 2007
Statut
Membre
Dernière intervention
20 novembre 2009
1
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
----------------------------------------------------------
Messages postés
46
Date d'inscription
samedi 19 janvier 2008
Statut
Membre
Dernière intervention
7 mai 2011
1
Merci BernieNoel68
Veux-tu me donner un exemple d'utilisation de TryStrToFloat, svp

et merci encore !!
Messages postés
46
Date d'inscription
samedi 19 janvier 2008
Statut
Membre
Dernière intervention
7 mai 2011
1
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
Messages postés
46
Date d'inscription
samedi 19 janvier 2008
Statut
Membre
Dernière intervention
7 mai 2011
1
Je l'ai fais, mais erreur à l'exécution : [Lieur Erreur fatale] Fatal: Expected a file name:

je crois que ça vient de #include <????>
Messages postés
46
Date d'inscription
samedi 19 janvier 2008
Statut
Membre
Dernière intervention
7 mai 2011
1
merci bien BernieNoel68, ça a marché !!