'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
Article(s) en relation(s)