PDA

Visualizza la versione completa : [VB] problema con cifre in esadecimale


mm90187
26-08-2002, 13:59
Secondo una precedente discussione le cifre in esadecimale ad es. 00 andavano lette come string ma purtroppo ho sempre lo stesso problema e cioè il prgramma legge sempre un solo 0

Private Sub Command1_Click()
Dim num As String
Dim num1 As String
If Check1.Value = 1 Then
num = Val("15")
num1 = Val("0D+2")
End If
Text1.Text = num
Text2.Text = num1

Datemi un consiglio

Grazie

xegallo
26-08-2002, 14:21
Originariamente inviato da mm90187
Secondo una precedente discussione le cifre in esadecimale ad es. 00 andavano lette come string ma purtroppo ho sempre lo stesso problema e cioè il prgramma legge sempre un solo 0

Private Sub Command1_Click()
Dim num As String
Dim num1 As String
If Check1.Value = 1 Then
num = Val("15")
num1 = Val("0D+2")
End If
Text1.Text = num
Text2.Text = num1

Datemi un consiglio

Grazie

se vuoi fare la conversione di un numero prova così



Private Sub Command1_Click()

Dim num As String
Dim num1 As String
num = "1369"
If Check1.Value = 1 Then
num1 = Hex(Val(num))
End If
Text1.Text = num
Text2.Text = num1
End Sub

se invece vuoi che ti scriva quello che vuoi tu alla riga num1 = della tua routine elimina Val()

steno12
26-08-2002, 16:09
Per quello che hai chiesto devi afre così.........:

scrivi il codice in un pulsante aggiungendo altre due text
..ti ho messo anche istruzioni stop per vedere come calcoli le lettere, all'istruzione stop metti il puntatore del mouse vicino ad una variabile per vedere il suo valore.......

'--------taglia da quì-----------
num = Val("15")
num1 = "2d2" 'esadecimale

lung = Len(num1)

bx = 1: nr = 1: rn = 1: For i = lung To 1 Step -1
c = UCase(Mid(num1, i, 1))
Stop
If UCase(Mid(num1, i, 1)) = "A" Then bx = bx + 10 * nr: GoTo 1
If UCase(Mid(num1, i, 1)) = "B" Then bx = bx + 11 * nr: GoTo 1
If UCase(Mid(num1, i, 1)) = "C" Then bx = bx + 12 * nr: GoTo 1
If UCase(Mid(num1, i, 1)) = "D" Then bx = bx + 13 * nr: GoTo 1
If UCase(Mid(num1, i, 1)) = "E" Then bx = bx + 14 * nr: GoTo 1
If UCase(Mid(num1, i, 1)) = "F" Then bx = bx + 15 * nr: GoTo 1
If Val(Mid(num1, i, 1)) = 0 Then Stop:goto 2
bx = bx + (Val(Mid(num1, i, 1)) * nr)
Stop
1
Stop
nr = nr * 16
2
Stop
Next i
bx = bx - 1
Stop
Text1.Text = num
Text2.Text = num1
Text3.Text = bx 'decimale
Text4.Text = bx + num
ì--------a qui-------------------



+---------+
| by Ten |
+---------+


link
homepage
http://%77%77%77%2e%74%77%6f%72%6b%2e%69%74/
software
http://%77%77%77%2e%74%77%6f%72%6b%2e%69%74/programmi/programmi.html
forum
http://%77%77%77%2e%74%77%6f%72%6b%2e%69%74/public/twforum/default.asp

Loading