Conversion d'une chaîne de caractères hexa-décimaux en entier
Source / Exemple :
Dim hds As New System.Management.ManagementObject("win32_logicaldisk='c:'")
hds.Get() ' Récupère les informations du disque
Dim sn As String = hds.Properties("volumeserialnumber").Value 'Numéro de série dans sn
Dim nb As UInteger
Dim element As String 'Caractère lu dans la chaîne sn
For i = 0 To sn.Length - 1 'Lecture élément par élément
element = Mid(sn, sn.Length - i, 1)
Select Case element
Case 0
nb = nb
Case 1
nb += 1 * (Math.Pow(16, i))
Case 2
nb += 2 * (Math.Pow(16, i))
Case 3
nb += 3 * (Math.Pow(16, i))
Case 4
nb += 4 * (Math.Pow(16, i))
Case 5
nb += 5 * (Math.Pow(16, i))
Case 6
nb += 6 * (Math.Pow(16, i))
Case 7
nb += 7 * (Math.Pow(16, i))
Case 8
nb += 8 * (Math.Pow(16, i))
Case 9
nb += 9 * (Math.Pow(16, i))
Case "A"
nb += 10 * (Math.Pow(16, i))
Case "B"
nb += 11 * (Math.Pow(16, i))
Case "C"
nb += 12 * (Math.Pow(16, i))
Case "D"
nb += 13 * (Math.Pow(16, i))
Case "E"
nb += 14 * (Math.Pow(16, i))
Case "F"
nb += 15 * (Math.Pow(16, i))
End Select
Next
Conclusion :
Bon, il doit exister une manière bien plus propre de faire ceci mais je n'ai pas trouvé ! J'étais en train de plancher sur un système de code d'activation pour mon application quand je me suis retouvé devant le problème suivant : Je récupère le numéro de série du disque dur sous forme de string, afin de faire des opérations sur ce numéro, il me fallait le convertir en entier ! Le numéro est une suite de caractères hexa-décimaux mais dans une string. Les quelques lignes suivantes créent donc un entier en lisant chaque caractère (hexa) de la chaîne de caractères ! Le math.pow signifie 16 élevé à la puissance i. En effet, par exemple : 5A en hexa-décimal vaut 90 en décimal : A=10 et 5=5 donc, pour convertir vers le décimal on fait = 10*(16^0)+5*(16^1) = 10*1+5*16=90 !
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.