Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

da numerico ad alfanumerico

102 views
Skip to first unread message

PI_1,618

unread,
May 16, 2009, 1:31:01 PM5/16/09
to
Ciao a tutti,
è possibile trasformare un numero in un dato alfanumerico con una funzione?
es: il dato alfanumerico 3XV4A corrisponde al numero 6618826
è possibile fare il contrario?
--
grazie, cià Tonella

rober...@yahoo.com

unread,
May 16, 2009, 4:13:48 PM5/16/09
to

Ciao *anonimo* Tonella
qual'è la regola che lega il dato numerico a quello alfanumerico?
Esiste un solo dato da convertire?
Roberto (IW1ERL)

PI_1,618

unread,
May 21, 2009, 10:13:20 AM5/21/09
to
La regola non la sò; il dato da convertire è una stringa lunga 5 caratteri.
La regola non la sò ma attualmente sto utilizzando una funziona che fà il
contrario, cioè da alfanumerico a decimale ed è questa:

Function decimalizza(stringa As String) As Double
If stringa = "" Then Exit Function
Dim lu As Integer
Dim u As Double
Dim x As Integer, a As Integer
Dim s As String
Dim no As Boolean
Dim d As Double

lu = Len(stringa)
u = 1
For x = lu To 1 Step -1
s = Mid(stringa, x, 1)
Select Case s
Case "0" To "9"
a = Asc(s) - 48
Case "A" To "Z"
a = Asc(s) - 55
Case "a" To "z"
a = Asc(s) - 87
Case Else
no = True
End Select
d = d + u * a
u = u * 36
Next x
If no Then Exit Function
decimalizza = d
End Function

ed una stringa tipo "3Z7QJ" me la trasforma in "6681835"
Si può fare una funzione che ritrafsormi "6681835" in "3Z7QJ"?
--
cià, Tonella


"rober...@yahoo.com" ha scritto:

rober...@yahoo.com

unread,
May 23, 2009, 2:49:18 AM5/23/09
to
On 21 Mag, 16:13, PI_1,618 <nos...@example.com> wrote:
>  ed una stringa tipo "3Z7QJ" me la trasforma in "6681835"
> Si può fare una funzione che ritrafsormi "6681835" in "3Z7QJ"?
> --
> cià, Tonella

Ciao Tonella
ho chiesto la regola e mi sono sentito in *dovere* di trovare una
soluzione.
Ora gli esperti del gruppo mi bacchetteranno sonoramente perchè manca
la dichiarazione delle variabili.
Note:
1) valida solo per numeri generati da stringhe iniziali di 5 caratteri
2) poichè sia con caratteri alfabetici minuscoli che maiuscoli
contenuti nella stringa iniziale il numero generato è lo stesso non è
possibile rigenerare la stringa iniziale *identica*. La funzione
genera stringhe con caratteri maiuscoli

Function stringhizza(numero)
If numero = 0 Then Exit Function
For x = 4 To 0 Step -1
alfa = Int(numero / 36 ^ x)
If alfa < 10 Then
u = 48
Else
u = 55
End If
valore = alfa + u
finale = finale & Chr(valore)
numero = numero - (alfa * 36 ^ x)
Next x
stringhizza = finale
End Function

Spero ti sia utile
Roberto (IW1ERL)

PI_1,618

unread,
May 26, 2009, 12:09:01 AM5/26/09
to
Perfetto, funziona benissimo, grazie Roberto.

--
ciao AnTonella


"rober...@yahoo.com" ha scritto:

0 new messages