Page 1 sur 1
Numérique ou non ?
Posté : 21 janv. 2015 15:04
par pat51
Bonjour.
Peut-on déterminer en un seule opération si une variable (ou une partie d'une variable) est numérique ?
(on peut bien sûr vérifier que chaque caractère de la variable - ou de la partie de la variable - est un chiffre,
c'est bestial, mais ça peut marcher).
Une idée ?
À vous lire.
Re: Numérique ou non ?
Posté : 24 janv. 2015 20:43
par LNOW
bonjour,
j'utiliserais le SET /A pour faire le test.
Par exemple si ta variable s'appelle X, j'utilise une autre variable VARTEMP
Code : Tout sélectionner
SET VARTEMP=PAS_NUMERIQUE
REM -- on utilise SET /A (on feinte car on ne fait pas d'opération) pour voir si c'est numérique
SET /A VARTEMP=%X% 2>NUL
IF "%VARTEMP%"=="PAS_NUMERIQUE" ECHO %X% n'est pas numerique...
Bon, c'est un exemple, à adapter selon ce que tu veux faire
Re: Numérique ou non ?
Posté : 14 févr. 2015 11:26
par sandorisuka
The above statement, this is a great value for me and many people here.
Re: Numérique ou non ?
Posté : 14 avr. 2015 13:13
par sakooon
(on peut bien sûr vérifier que chaque caractère de la variable - ou de la partie de la variable - est un chiffre, c'est bestial, mais ça peut marcher).????
Re: Numérique ou non ?
Posté : 03 mai 2015 19:50
par LNOW
sakooon a écrit :(on peut bien sûr vérifier que chaque caractère de la variable - ou de la partie de la variable - est un chiffre, c'est bestial, mais ça peut marcher).????
Mmmoui, on peut le faire.
Je dirais qu'il faut supprimer tous les chiffres, et vérifier à la fin que le résultat est vide.
En supposant que ta variable à vérifier s'appelle X, cela donnerait qq chose comme:
Code : Tout sélectionner
REM On suppose que la variable a verifier est X
SETLOCAL
SET VARTEMP="%X%"
if %VARTEMP%=="" ECHO la variable est vide & GOTO :EOF
REM On retire les chiffres un à un
SET VARTEMP=%VARTEMP:0=%
SET VARTEMP=%VARTEMP:1=%
SET VARTEMP=%VARTEMP:2=%
SET VARTEMP=%VARTEMP:3=%
SET VARTEMP=%VARTEMP:4=%
SET VARTEMP=%VARTEMP:5=%
SET VARTEMP=%VARTEMP:6=%
SET VARTEMP=%VARTEMP:7=%
SET VARTEMP=%VARTEMP:8=%
SET VARTEMP=%VARTEMP:9=%
REM on vérifie et affiche le résultat
if %VARTEMP%=="" ECHO %X% est NUMERIQUE & GOTO :EOF
ECHO %X% n'est pas numerique