
Vérifier si un texte repésente une valeur décimale ou hexa
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Re: Vérifier si un texte repésente une valeur décimale ou he
oui, comme ça, ça dépote 

Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
-
- Messages : 510
- Inscription : dim. 25/mars/2007 13:44
- Localisation : Toulouse, France
- Contact :
Re: Vérifier si un texte repésente une valeur décimale ou he
En effet, bien vu 

Re: Vérifier si un texte repésente une valeur décimale ou he
En effet ça arrache, maintenant j'ai :
A+
Guimauve
- Solution 1 : 617
- Solution 2 : 121
- Ratio = 1 / 5.0991735458
Code : Tout sélectionner
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Nom du projet : Commande dé vérification du type de valeur
; Nom du fichier : IsVal - IsReal - IsHexVal.pb
; Version du fichier : 1.0.1
; Programmation : OK
; Programmé par : Guimauve
; Date : 21-02-2012
; Mise à jour : 22-02-2012
; Code PureBasic : 4.61 Beta 1
; Plateforme : Windows, Linux, MacOS X
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Note :
;
; Les commandes suivantes sont inspirés d'un code fournie par
; lepiaf (forum PureBasic Fr)
;
; Optimisation par PAPIPP (forum PureBasic Fr)
;
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Procedure IsVal(string.s)
Static OneShot.b, regExp.i
If OneShot = #False
regExp = CreateRegularExpression(#PB_Any, "^[-+]?[0-9]+?$")
OneShot = #True
EndIf
ProcedureReturn MatchRegularExpression(regExp,string)
EndProcedure
Procedure IsHexVal(string.s)
Static OneShot.b, regExp.i
If OneShot = #False
regExp = CreateRegularExpression(#PB_Any, "^[-+]?\$[0-9A-Fa-f]+$")
OneShot = #True
EndIf
ProcedureReturn MatchRegularExpression(regExp,string)
EndProcedure
Procedure IsReal(string.s)
Static OneShot.b, regExp.i
If OneShot = #False
regExp = CreateRegularExpression(#PB_Any, "^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$")
OneShot = #True
EndIf
ProcedureReturn MatchRegularExpression(regExp,string)
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< !!! ATTENTION - CODE D'ESSAI !!! <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Macro AddElementEx(ListName, Value)
AddElement(ListName)
ListName = Value
EndMacro
NewList Values.s()
AddElementEx(Values(), "12")
AddElementEx(Values(), "-1052")
AddElementEx(Values(), "1.25456")
AddElementEx(Values(), "0")
AddElementEx(Values(), "0.0")
AddElementEx(Values(), "000123")
AddElementEx(Values(), "100")
AddElementEx(Values(), "bonjour")
AddElementEx(Values(), StrD(2.0*#PI, 18))
AddElementEx(Values(), "10 bonjour")
AddElementEx(Values(), "1.5e25")
AddElementEx(Values(), "a198")
AddElementEx(Values(), "0011_")
AddElementEx(Values(), "bonjour")
AddElementEx(Values(), "100 bonjour")
AddElementEx(Values(), "541")
AddElementEx(Values(), "$0011_")
AddElementEx(Values(), "$A198")
AddElementEx(Values(), "$Z198")
ForEach Values()
If IsVal(Values()) = 1
Debug "L'entrée " + Chr(34) + Values() + Chr(34) + " est bien une valeur numérique entière"
Found = 1
EndIf
If IsReal(Values()) = 1
Debug "L'entrée " + Chr(34) + Values() + Chr(34) + " est bien une valeur numérique flottante"
Found = 1
EndIf
If IsHexVal(Values()) = 1
Debug "L'entrée " + Chr(34) + Values() + Chr(34) + " est bien une valeur hexadécimale"
Found = 1
EndIf
If Found = 1
Found = 0
Else
Debug "L'entrée " + Chr(34) + Values() + Chr(34) + " n'est pas une valeur valide"
EndIf
Debug ""
Next
; <<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< FIN DU FICHIER <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<
Guimauve