Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Da esadecimale a decimale
Forum - Visual Basic 6 - Da esadecimale a decimale

Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 20:55
Giovedì, 28/08/2008
ciao!
stavolta non ho un problema...
Vb6 ha la funzione di convertire un numero in esadecimale con la funzione Hex(). Ma non è ha una per farlo tornare normale. Questo in varie occasioni mi ha seccato molto ma ho fatto una funzione Dec() che converte un esadecimale in decimale. Ve la posto in modo che se qualcuno ne avrà bisogno saprà che esiste un post in cui è scritta. La funzione la potete usare liberamente anche se preferirei che metteste un commento nel vostro progetto che mi citi.

Codice sorgente - presumibilmente VB.NET

  1. Private Function Dec(ByVal Number As String) 'Created by GrG
  2. Dim temp As String
  3. Dim tmp As String
  4. Dim i As Integer
  5. Dim x As Integer
  6. Dim c As Long
  7. i = Len(CStr(Number))
  8. temp = CStr(Number)
  9. For x = 1 To i
  10. tmp = Left(temp, 1)
  11. temp = Right(temp, Len(temp) - 1)
  12. If x = i Then
  13. Dec = Dec & tmp
  14. Else
  15. Dec = Dec & tmp & "|"
  16. End If
  17. Next x
  18. Dec = Replace(Dec, "A", "10")
  19. Dec = Replace(Dec, "B", "11")
  20. Dec = Replace(Dec, "C", "12")
  21. Dec = Replace(Dec, "D", "13")
  22. Dec = Replace(Dec, "E", "14")
  23. Dec = Replace(Dec, "F", "15")
  24. Dim d() As String
  25. d = Split(Dec, "|")
  26. Dim f As Integer
  27. Dim m As Integer
  28. m = UBound(d())
  29. Dec = ""
  30. For f = 0 To UBound(d())
  31. c = c + (d(f) * (16 ^ m))
  32. m = m - 1
  33. Next f
  34. Dec = c
  35. End Function
  36.  
  37. Private Sub Form_Load() 'esempio sull'utilizzo
  38. MsgBox Dec("7B")
  39. End Sub



Per richiamare la funzione basta che scriviate:
Dec ("numero esadecimale")

tra virgolette perchè all'inizio il numero viene trattato come una stringa...

altro esempio di utilizzo:
Codice sorgente - presumibilmente VB.NET

  1. Private Sub Form_Load() 'esempio sull'utilizzo
  2. Dim k
  3. k = Hex(123) 'valore = 7B
  4. MsgBox Dec(k) 'valore = 123
  5. End Sub



p.s. Mi raccomando le lettere (A,B,C,D,E,F) del numero esadecimale DEVONO essere MAIUSCOLE, perchè il programma è CASESENSITIVE e darebbe errore.

Spero vi sia utile:)

Ultima modifica effettuata da GrG il 28/08/2008 alle 20:58
PM Quote
Avatar
antometal (Member)
Guru


Messaggi: 691
Iscritto: 12/09/2007

Segnala al moderatore
Postato alle 10:05
Venerdì, 29/08/2008
si può anche con la funzione val:
val("&h" & hexNumber)

tipo...
decimale = Val("&h7e")
decimale avrà il valore 126

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 11:16
Venerdì, 29/08/2008
LoL
Immaginavo che una funzione x convertire da esadecimale a decimale già fatta c'era...

vbb x lo meno ho imparat una cosa nuova, grazie ;)

PM Quote