[R] Vérifier le type de données

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
EricF
Niveau 4
Niveau 4
Messages : 72
Enregistré le : mar. 08 mars 2011 23:06
Status : Hors ligne

[R] Vérifier le type de données

#1

Message par EricF »

Bonjour,
Dans un programme, j'ai des champs texte. VarGetType me renvoie toujours Int32 même si je saisis des lettres. Normal ? Comment vérifier que les données sont numériques ?
Modifié en dernier par EricF le dim. 15 juil. 2012 21:24, modifié 1 fois.
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Vérifier le type de données

#2

Message par blacksoul305 »

Salut,

tu as la fonction : IsString qui renvoie True/False si la donnée est une chaîne de caractères.
tu as la fonction : IsNumber qui renvoie True/False si la donnée est numérique.
Étudiant en 2ème année de Licence Informatique.
EricF
Niveau 4
Niveau 4
Messages : 72
Enregistré le : mar. 08 mars 2011 23:06
Status : Hors ligne

Re: [..] Vérifier le type de données

#3

Message par EricF »

en l'occurence, je peux avoir des nombres à virgule, j'utilise donc isfloat, qui me renvoie toujours false. J'ai donc utilisé vargettype() pour savoir le type renvoyé, et j'ai TOUJOURS int32, meme si je saisis des 'xxx' par exemple. Pourquoi ça me renvoie Int32 pour des lettres ? C'est ça mon problème.
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Vérifier le type de données

#4

Message par TommyDDR »

Code : Tout sélectionner

Func _isNumber($Nombre)
    Return $Nombre + 0 == $Nombre
EndFunc
Le "==" (et non "=") est important, c'est lui qui permet d'exclure les strings.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
EricF
Niveau 4
Niveau 4
Messages : 72
Enregistré le : mar. 08 mars 2011 23:06
Status : Hors ligne

Re: [..] Vérifier le type de données

#5

Message par EricF »

Code : Tout sélectionner

                if _isNumber($Input1) And _isNumber($Input2) Then
                    [actions]
                Else
                    MsgBox(4096, "Erreur de format", "Les données saisies dans les champs doivent-être numériques ! Veuillez corriger !")
                EndIf
Ce code ne me donne pas de message quand je saisis du texte.
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Vérifier le type de données

#6

Message par TommyDDR »

C'est normal, si, $Input est créé de la forme :

Code : Tout sélectionner

$Input = GUICtrlCreateInput(xxxxxx)
Alors $Input est un identifiant !
Je vous conseille de lire l'aide (entièrement !) sur le GUICtrlCreateInput.

Et le premier qui crache la solution je le crucifie sur place !
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
EricF
Niveau 4
Niveau 4
Messages : 72
Enregistré le : mar. 08 mars 2011 23:06
Status : Hors ligne

Re: [..] Vérifier le type de données

#7

Message par EricF »

Merci. En fait, c'était juste une étourderie, j'utilisais bien GUICtrlRead().
Merci poru cette remarque :oops:
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [R] Vérifier le type de données

#8

Message par TommyDDR »

Tant que vous trouvez par vous même, c'est ce qui compte ^^.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Vérifier le type de données

#9

Message par blacksoul305 »

TommyDDR a écrit :Et le premier qui crache la solution je le crucifie sur place !
Woarf... Heureusement que je ne suis pas tombé sur le fofo avant qu'EricF ne réponde ! :lol:
Étudiant en 2ème année de Licence Informatique.
Répondre