Thanks. There was a python snippet I found on wikipedia earlier. Maybe I'll
knock something together in the next few days when I get a little more free
time.

On Sun, Nov 16, 2008 at 2:27 PM, Pablo Vera <[EMAIL PROTECTED]> wrote:

> Here is a VB6 code to convert to and from base36, it should work almost
> the same in Gambas:
>
>
> ' Support functions
>
> ' Get a base36 digit
> Private Function D36(ByVal N As Integer) As String
>  D36 = Chr$(N + IIf(N <= 9, 48, 55))
> End Function
>
> ' base36 Logarithm
> Private Function Log36(ByVal X As Double) As Double
>  Log36 = Log(X) / Log(36#)
> End Function
>
>
> ' Convert a base10 number (Num10) to base36 with a maximum of RNum digits
> '
> Public Function ToBase36(ByVal Num10 As Long, ByVal RNum As Integer) As
> String
> Dim Num36 As String, Base As Long, Mult As Integer, E As Integer
>  Num36 = String$(RNum, "0")
>
>  If Num10 > 0 Then
>    E = Int(Log36(Num10))
>
>    Do
>      Base = 36 ^ E
>      Mult = Int(Num10 / Base)
>      Mid$(Num36, RNum - E, 1) = D36(Mult)
>
>      Num10 = Num10 - Mult * Base
>      E = E - 1
>    Loop Until E < 0
>  End If
>
>  ToBase36 = Num36
> End Function
>
>
> ' Convert a base36 number (Num36) back to base10
> '
> Public Function ToBase10(ByVal Num36 As String) As Long
> Dim Num10 As Long, I As Integer, D As Long, C As String, E As Integer
>  Num10 = 0
>
>  E = Len(Num36)
>  For I = E To 1 Step -1
>    C = UCase$(MID$(Num36, I, 1))
>    If C >= "A" And C <= "Z" Then
>      D = ASc(C) - 55
>    ElseIf C >= "0" And C <= "9" Then
>      D = ASc(C) - 48
>    Else
>      D = 0
>    End If
>    Num10 = Num10 + D * (36 ^ (E - I))
>  Next I
>
>  ToBase10 = Num10
> End Function
>
> Pablo
> _____________________________________________________________________
>
>
>
> Jason Hackney wrote:
> > A cursory look through the docs didn't turn up anything... Is there a
> > function to convert base, say base 10 to base 36? Or base 16 to base 36.
> I
> > want to get to base 36 from either base10 or base16.
> >
> > It shouldn't be too difficult to hack something together, but was
> wondering
> > if I'm overlooking something that's already there.
> >
> > Thanks!
> > -------------------------------------------------------------------------
> > This SF.Net email is sponsored by the Moblin Your Move Developer's
> challenge
> > Build the coolest Linux based applications with Moblin SDK & win great
> prizes
> > Grand prize is a trip for two to an Open Source event anywhere in the
> world
> > http://moblin-contest.org/redirect.php?banner_id=100&url=/
> > _______________________________________________
> > Gambas-user mailing list
> > Gambas-user@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/gambas-user
> >
> >
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's
> challenge
> Build the coolest Linux based applications with Moblin SDK & win great
> prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> Gambas-user mailing list
> Gambas-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gambas-user
>
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Gambas-user mailing list
Gambas-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gambas-user

Reply via email to