Isoler un chiffre dans une variable contenant du texte
Trouver et retourner que le premier chiffre contenu dans un texte
'Dans une chaine de caractère, retourne la première série de chiffres consécutive
'Par exemple pour "Bol 234 5 raid 6" on retournera 234
Dim ChiffreDebut, ChiffreFin, MonChiffre
UneLigneDeResultat = "Bol 234 5 raid 6"
Wscript.echo "Chaine analysée : " & UneLigneDeResultat
ChiffreDebut = 0 'Valeur par défaut
ChiffreFin = 0 'Valeur par défaut
Compteur = 1 'On se positionne au début de la ligne
'Analyse de la ligne de gauche à droite
Do
If IsNumeric(Mid(UneLigneDeResultat, Compteur, 1)) = True Then 'Si le caractère scruté est un chiffre
ChiffreDebut = Compteur
Exit Do
Else 'Si on n'a pas encore trouvé de chiffre, on incrémente de 1
Compteur = Compteur + 1
End If
Loop While (ChiffreDebut = 0 And (Compteur =< Len(UneLigneDeResultat))) ' (IsNumeric(Mid(UneLigneDeResultat, Compteur, 1)) = False)
If ChiffreDebut > 0 Then 'Si on a trouvé le début d'un chiffre
'Wscript.echo ChiffreDebut
ChiffreFin = ChiffreDebut 'Par défaut la fin du chiffre est un digit après le début
Compteur = ChiffreDebut 'On se positionne au début du chiffre trouvé
Do
If IsNumeric(Mid(UneLigneDeResultat, Compteur, 1)) = False Then 'Si le caractère scruté n'est plus un chiffre
ChiffreFin = Compteur - 1
Exit Do
Else 'Si on a encore trouvé un chiffre, alors on avant au caractère suivant mais on note le résultat
ChiffreFin = Compteur
Compteur = Compteur + 1
End If
Loop While (Compteur =< Len(UneLigneDeResultat)) 'Tant que l'on n'est pas arrivé à la fin de la ligne
'Wscript.echo ChiffreFin
MonChiffre = Mid(UneLigneDeResultat, ChiffreDebut, (ChiffreFin - ChiffreDebut) + 1)
Wscript.echo MonChiffre
Else
Wscript.echo "Pas de chiffre trouvé"
End If
Lien vers le fichier : cliquez ici
Publicité
Article(s) en relation(s)