Je dois tester une chaine de caractères afin de dire si c'est un nombre ou
une chaine.
J'ai utilisé isnumeric() mais il me renvoi VRAI pour "411999B0000" alors que
c'est FAUX!!
J'ai essayé val(4119999B000) mai il me renvoi 4119999 !
alors que c'est FAUX
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
ng
Salut,
Chez moi IsNumeric("411999B0000") renvoie bien False. Quel est ta version de VB ? Avec quel service pack ?
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
Microsoft wrote:
Bonjour,
Je dois tester une chaine de caractères afin de dire si c'est un nombre ou une chaine. J'ai utilisé isnumeric() mais il me renvoi VRAI pour "411999B0000" alors que c'est FAUX!! J'ai essayé val(4119999B000) mai il me renvoi 4119999 ! alors que c'est FAUX
Une solution ??
merci d'avance
Salut,
Chez moi IsNumeric("411999B0000") renvoie bien False.
Quel est ta version de VB ? Avec quel service pack ?
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
Microsoft wrote:
Bonjour,
Je dois tester une chaine de caractères afin de dire si c'est un
nombre ou une chaine.
J'ai utilisé isnumeric() mais il me renvoi VRAI pour "411999B0000"
alors que c'est FAUX!!
J'ai essayé val(4119999B000) mai il me renvoi 4119999 !
alors que c'est FAUX
Chez moi IsNumeric("411999B0000") renvoie bien False. Quel est ta version de VB ? Avec quel service pack ?
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
Microsoft wrote:
Bonjour,
Je dois tester une chaine de caractères afin de dire si c'est un nombre ou une chaine. J'ai utilisé isnumeric() mais il me renvoi VRAI pour "411999B0000" alors que c'est FAUX!! J'ai essayé val(4119999B000) mai il me renvoi 4119999 ! alors que c'est FAUX
Une solution ??
merci d'avance
Microsoft
J'ai VB6 avec SP6
"ng" a écrit dans le message de news: ucl$
Salut,
Chez moi IsNumeric("411999B0000") renvoie bien False. Quel est ta version de VB ? Avec quel service pack ?
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
Microsoft wrote:
Bonjour,
Je dois tester une chaine de caractères afin de dire si c'est un nombre ou une chaine. J'ai utilisé isnumeric() mais il me renvoi VRAI pour "411999B0000" alors que c'est FAUX!! J'ai essayé val(4119999B000) mai il me renvoi 4119999 ! alors que c'est FAUX
Une solution ??
merci d'avance
J'ai VB6 avec SP6
"ng" <ng@ngsoft-fr.com> a écrit dans le message de news:
ucl$buI2EHA.3092@TK2MSFTNGP10.phx.gbl...
Salut,
Chez moi IsNumeric("411999B0000") renvoie bien False.
Quel est ta version de VB ? Avec quel service pack ?
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
Microsoft wrote:
Bonjour,
Je dois tester une chaine de caractères afin de dire si c'est un
nombre ou une chaine.
J'ai utilisé isnumeric() mais il me renvoi VRAI pour "411999B0000"
alors que c'est FAUX!!
J'ai essayé val(4119999B000) mai il me renvoi 4119999 !
alors que c'est FAUX
Chez moi IsNumeric("411999B0000") renvoie bien False. Quel est ta version de VB ? Avec quel service pack ?
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
Microsoft wrote:
Bonjour,
Je dois tester une chaine de caractères afin de dire si c'est un nombre ou une chaine. J'ai utilisé isnumeric() mais il me renvoi VRAI pour "411999B0000" alors que c'est FAUX!! J'ai essayé val(4119999B000) mai il me renvoi 4119999 ! alors que c'est FAUX
Une solution ??
merci d'avance
LE TROLL
Bonsoir,
Moi aussi j'ai du bizarre avec IsNumeric, je n'utilise plus, revenant à la bonne méthode barbare es efficace (et rapide, juste une idée de principe):
dim octet as string * 1 dim asc as integer dim chaine_a_tester as string dim chaine_transfert as string dim ponitVirgule as boolean ' point_Virgule = false chaine_a_tester = trim(chaine_a_tester) chaine_transfert = "" for i = 1 to len(chaine_a_tester) octet = mid(chaine_a_tester, i,1) ascii = asc(octet) if ascii = 44 then if pointVirgule = true then goto erreur2 chaine_transfert = "." ' si tu veux passer 44 en 46 chaine_transfert = chaine_transfert & octet ' sinon pointVirgule = true goto suite end if if ascii = 46 then if pointVirgule = true then goto erreur2 chaine_transfert = "," ' si tu veux passer 46 en 44 chaine_transfert = chaine_transfert & octet ' sinon pointVirgule = true goto suite end if if ascii > 47 and ascii < 58 then chaine_transfert = chaine_transfert & octet goto suite end if ' erreur: msgbox "erreur, pas numérique : " & ascii & chr(10) & octet & chr(10) & i exit for erreur2: msgbox "2 virgule(s) ou point(s) goto erreur suite: next i chaine_a_tester = chaine_transfert '-------------
"Microsoft" a écrit dans le message de news:
Bonjour,
Je dois tester une chaine de caractères afin de dire si c'est un nombre ou une chaine. J'ai utilisé isnumeric() mais il me renvoi VRAI pour "411999B0000" alors que c'est FAUX!! J'ai essayé val(4119999B000) mai il me renvoi 4119999 ! alors que c'est FAUX
Une solution ??
merci d'avance
Bonsoir,
Moi aussi j'ai du bizarre avec IsNumeric, je n'utilise plus, revenant à
la bonne méthode barbare es efficace (et rapide, juste une idée de
principe):
dim octet as string * 1
dim asc as integer
dim chaine_a_tester as string
dim chaine_transfert as string
dim ponitVirgule as boolean
'
point_Virgule = false
chaine_a_tester = trim(chaine_a_tester)
chaine_transfert = ""
for i = 1 to len(chaine_a_tester)
octet = mid(chaine_a_tester, i,1)
ascii = asc(octet)
if ascii = 44 then
if pointVirgule = true then goto erreur2
chaine_transfert = "." ' si tu veux passer 44 en 46
chaine_transfert = chaine_transfert & octet ' sinon
pointVirgule = true
goto suite
end if
if ascii = 46 then
if pointVirgule = true then goto erreur2
chaine_transfert = "," ' si tu veux passer 46 en 44
chaine_transfert = chaine_transfert & octet ' sinon
pointVirgule = true
goto suite
end if
if ascii > 47 and ascii < 58 then
chaine_transfert = chaine_transfert & octet
goto suite
end if
'
erreur:
msgbox "erreur, pas numérique : " & ascii & chr(10) & octet &
chr(10) & i
exit for
erreur2:
msgbox "2 virgule(s) ou point(s)
goto erreur
suite:
next i
chaine_a_tester = chaine_transfert
'-------------
"Microsoft" <fabrice.magier@tiscali.fr> a écrit dans le message de news:
OFJFRqI2EHA.2572@tk2msftngp13.phx.gbl...
Bonjour,
Je dois tester une chaine de caractères afin de dire si c'est un nombre ou
une chaine.
J'ai utilisé isnumeric() mais il me renvoi VRAI pour "411999B0000" alors
que c'est FAUX!!
J'ai essayé val(4119999B000) mai il me renvoi 4119999 !
alors que c'est FAUX
Moi aussi j'ai du bizarre avec IsNumeric, je n'utilise plus, revenant à la bonne méthode barbare es efficace (et rapide, juste une idée de principe):
dim octet as string * 1 dim asc as integer dim chaine_a_tester as string dim chaine_transfert as string dim ponitVirgule as boolean ' point_Virgule = false chaine_a_tester = trim(chaine_a_tester) chaine_transfert = "" for i = 1 to len(chaine_a_tester) octet = mid(chaine_a_tester, i,1) ascii = asc(octet) if ascii = 44 then if pointVirgule = true then goto erreur2 chaine_transfert = "." ' si tu veux passer 44 en 46 chaine_transfert = chaine_transfert & octet ' sinon pointVirgule = true goto suite end if if ascii = 46 then if pointVirgule = true then goto erreur2 chaine_transfert = "," ' si tu veux passer 46 en 44 chaine_transfert = chaine_transfert & octet ' sinon pointVirgule = true goto suite end if if ascii > 47 and ascii < 58 then chaine_transfert = chaine_transfert & octet goto suite end if ' erreur: msgbox "erreur, pas numérique : " & ascii & chr(10) & octet & chr(10) & i exit for erreur2: msgbox "2 virgule(s) ou point(s) goto erreur suite: next i chaine_a_tester = chaine_transfert '-------------
"Microsoft" a écrit dans le message de news:
Bonjour,
Je dois tester une chaine de caractères afin de dire si c'est un nombre ou une chaine. J'ai utilisé isnumeric() mais il me renvoi VRAI pour "411999B0000" alors que c'est FAUX!! J'ai essayé val(4119999B000) mai il me renvoi 4119999 ! alors que c'est FAUX
Une solution ??
merci d'avance
thierry
In article , says...
Bonjour,
Je dois tester une chaine de caractères afin de dire si c'est un nombre ou une chaine. J'ai utilisé isnumeric() mais il me renvoi VRAI pour "411999B0000" alors que c'est FAUX!! J'ai essayé val(4119999B000) mai il me renvoi 4119999 ! alors que c'est FAUX
Une solution ??
merci d'avance
pour ma part je fais cela:
dim valeur as integer
on error goto error_convert valeur = cint (chaine a tester) on error goto 0
' ici c'est un entier exit sub
error_convert: 'ici ce n'est pas un entier, faire attention à la virgule....
In article <OFJFRqI2EHA.2572@tk2msftngp13.phx.gbl>,
fabrice.magier@tiscali.fr says...
Bonjour,
Je dois tester une chaine de caractères afin de dire si c'est un nombre ou
une chaine.
J'ai utilisé isnumeric() mais il me renvoi VRAI pour "411999B0000" alors que
c'est FAUX!!
J'ai essayé val(4119999B000) mai il me renvoi 4119999 !
alors que c'est FAUX
Une solution ??
merci d'avance
pour ma part je fais cela:
dim valeur as integer
on error goto error_convert
valeur = cint (chaine a tester)
on error goto 0
' ici c'est un entier
exit sub
error_convert:
'ici ce n'est pas un entier, faire attention à la virgule....
Je dois tester une chaine de caractères afin de dire si c'est un nombre ou une chaine. J'ai utilisé isnumeric() mais il me renvoi VRAI pour "411999B0000" alors que c'est FAUX!! J'ai essayé val(4119999B000) mai il me renvoi 4119999 ! alors que c'est FAUX
Une solution ??
merci d'avance
pour ma part je fais cela:
dim valeur as integer
on error goto error_convert valeur = cint (chaine a tester) on error goto 0
' ici c'est un entier exit sub
error_convert: 'ici ce n'est pas un entier, faire attention à la virgule....
Jean-Marc
"Microsoft" a écrit dans le message de news:
Bonjour,
Je dois tester une chaine de caractères afin de dire si c'est un nombre ou une chaine. J'ai utilisé isnumeric() mais il me renvoi VRAI pour "411999B0000" alors
que
c'est FAUX!! J'ai essayé val(4119999B000) mai il me renvoi 4119999 ! alors que c'est FAUX
Hello,
Il y a plein de moyens, aucun n'est évident. En voici un:
parcourir du premier au dernier si c'est un chiffre OK si c'est un "." faire nbrePoints = nbrePoints + 1 si c'est une "," faire nbrevirg = nbvirg + 1 si c'est autre chose => PAS OK
Puis à la fin,
si il n'y a eu que des chiffres, ou bien que des chiffres sauf exactement 1 point OU exactement une virgule alors c'est un nombre.
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't."
"Microsoft" <fabrice.magier@tiscali.fr> a écrit dans le message de
news:OFJFRqI2EHA.2572@tk2msftngp13.phx.gbl...
Bonjour,
Je dois tester une chaine de caractères afin de dire si c'est un nombre ou
une chaine.
J'ai utilisé isnumeric() mais il me renvoi VRAI pour "411999B0000" alors
que
c'est FAUX!!
J'ai essayé val(4119999B000) mai il me renvoi 4119999 !
alors que c'est FAUX
Hello,
Il y a plein de moyens, aucun n'est évident.
En voici un:
parcourir du premier au dernier
si c'est un chiffre OK
si c'est un "." faire nbrePoints = nbrePoints + 1
si c'est une "," faire nbrevirg = nbvirg + 1
si c'est autre chose => PAS OK
Puis à la fin,
si il n'y a eu que des chiffres, ou bien que des chiffres
sauf exactement 1 point OU exactement une virgule
alors c'est un nombre.
--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
Je dois tester une chaine de caractères afin de dire si c'est un nombre ou une chaine. J'ai utilisé isnumeric() mais il me renvoi VRAI pour "411999B0000" alors
que
c'est FAUX!! J'ai essayé val(4119999B000) mai il me renvoi 4119999 ! alors que c'est FAUX
Hello,
Il y a plein de moyens, aucun n'est évident. En voici un:
parcourir du premier au dernier si c'est un chiffre OK si c'est un "." faire nbrePoints = nbrePoints + 1 si c'est une "," faire nbrevirg = nbvirg + 1 si c'est autre chose => PAS OK
Puis à la fin,
si il n'y a eu que des chiffres, ou bien que des chiffres sauf exactement 1 point OU exactement une virgule alors c'est un nombre.
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't."
Guy DETIENNE
Salut ;
En effet, tu as un problème avec ta fonction IsNumeric. Chez moi ca me retourne FALSE, ce qui est normal vu que VB ne peut considérer la chaîne comme étant du numérique.
Pour mieux comprendre la fonction IsNumeric :
La fonction IsNumeric renvoie la valeur True si l'ensemble de l'expression est reconnue comme étant un nombre ; sinon, elle renvoie la valeur False. La fonction IsNumeric renvoie la valeur False si l'argument expression est une expression de date.
Par contre VAL(4119999B000) doit retourner 4119999. Ce qui est correct chez toi. Donc il n'y a pas d'erreur à ce niveau, contrairement à ce que tu sembles dire. IsNumeric et Val sont 2 fonctions très différentes. Pour mieux comprendre la fonction VAL :
La fonction Val arrête la lecture de la chaîne au premier caractère ne faisant apparemment pas partie d'un nombre. Les symboles et caractères fréquemment associés aux valeurs numériques, comme le signe $ et les virgules ne sont pas reconnus. En revanche, la fonction reconnaît les préfixes &O (pour octal) et &H (pour hexadécimal). Les espaces, les tabulations et les caractères de saut de ligne ne sont pas pris en compte dans l'argument.
Guy
"Microsoft" a écrit dans le message de news:
Bonjour,
Je dois tester une chaine de caractères afin de dire si c'est un nombre ou une chaine. J'ai utilisé isnumeric() mais il me renvoi VRAI pour "411999B0000" alors que c'est FAUX!! J'ai essayé val(4119999B000) mai il me renvoi 4119999 ! alors que c'est FAUX
Une solution ??
merci d'avance
Salut ;
En effet, tu as un problème avec ta fonction IsNumeric.
Chez moi ca me retourne FALSE, ce qui est normal vu que VB ne peut
considérer la chaîne comme étant du numérique.
Pour mieux comprendre la fonction IsNumeric :
La fonction IsNumeric renvoie la valeur True si l'ensemble de l'expression
est reconnue comme étant un nombre ; sinon, elle renvoie la valeur False.
La fonction IsNumeric renvoie la valeur False si l'argument expression est
une expression de date.
Par contre VAL(4119999B000) doit retourner 4119999. Ce qui est correct chez
toi. Donc il n'y a pas d'erreur à ce niveau, contrairement à ce que tu
sembles dire. IsNumeric et Val sont 2 fonctions très différentes.
Pour mieux comprendre la fonction VAL :
La fonction Val arrête la lecture de la chaîne au premier caractère ne
faisant apparemment pas partie d'un nombre. Les symboles et caractères
fréquemment associés aux valeurs numériques, comme le signe $ et les
virgules ne sont pas reconnus. En revanche, la fonction reconnaît les
préfixes &O (pour octal) et &H (pour hexadécimal). Les espaces, les
tabulations et les caractères de saut de ligne ne sont pas pris en compte
dans l'argument.
Guy
"Microsoft" <fabrice.magier@tiscali.fr> a écrit dans le message de news:
OFJFRqI2EHA.2572@tk2msftngp13.phx.gbl...
Bonjour,
Je dois tester une chaine de caractères afin de dire si c'est un nombre ou
une chaine.
J'ai utilisé isnumeric() mais il me renvoi VRAI pour "411999B0000" alors
que c'est FAUX!!
J'ai essayé val(4119999B000) mai il me renvoi 4119999 !
alors que c'est FAUX
En effet, tu as un problème avec ta fonction IsNumeric. Chez moi ca me retourne FALSE, ce qui est normal vu que VB ne peut considérer la chaîne comme étant du numérique.
Pour mieux comprendre la fonction IsNumeric :
La fonction IsNumeric renvoie la valeur True si l'ensemble de l'expression est reconnue comme étant un nombre ; sinon, elle renvoie la valeur False. La fonction IsNumeric renvoie la valeur False si l'argument expression est une expression de date.
Par contre VAL(4119999B000) doit retourner 4119999. Ce qui est correct chez toi. Donc il n'y a pas d'erreur à ce niveau, contrairement à ce que tu sembles dire. IsNumeric et Val sont 2 fonctions très différentes. Pour mieux comprendre la fonction VAL :
La fonction Val arrête la lecture de la chaîne au premier caractère ne faisant apparemment pas partie d'un nombre. Les symboles et caractères fréquemment associés aux valeurs numériques, comme le signe $ et les virgules ne sont pas reconnus. En revanche, la fonction reconnaît les préfixes &O (pour octal) et &H (pour hexadécimal). Les espaces, les tabulations et les caractères de saut de ligne ne sont pas pris en compte dans l'argument.
Guy
"Microsoft" a écrit dans le message de news:
Bonjour,
Je dois tester une chaine de caractères afin de dire si c'est un nombre ou une chaine. J'ai utilisé isnumeric() mais il me renvoi VRAI pour "411999B0000" alors que c'est FAUX!! J'ai essayé val(4119999B000) mai il me renvoi 4119999 ! alors que c'est FAUX