Avatar billede tingholm Mester
01. marts 2012 - 10:23 Der er 5 kommentarer og
1 løsning

konvertere decimal til 62-tal system

Hej VBA eksperter

Med hjælp har jeg fået sammenstykket en funktion til at konvertere decimal tal til et talsystem med 62 forskellige cifre:

Function fullradix(Num As Long)
    Dim Tmp As Long, Res As String, Dig As Integer
       
    Tmp = Num
    Res = ""
   
    While Tmp > 0
        Dig = (Tmp Mod 62) + 1
        Tmp = Tmp / 62
        Res = Mid("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", Dig, 1) & Res
    Wend
    fullradix = Res
End Function

Og det virker helt som det skal. Det eneste problem er at jeg gerne vil konvertere meget store tal (18-20 cifre decimal), og Long kan tilsyneladende ikke følge med.

Jeg har prøvet at ændre alle Long til Double, men så er der intet der virker...
Nogen forslag?
Avatar billede tjp Mester
01. marts 2012 - 11:18 #1
Du ku evt bruge strings som input..
Avatar billede tingholm Mester
01. marts 2012 - 11:26 #2
tjp, jeg har selv tænkt samme tanke, men jeg skal tage en modulus 62 på den i funktionen, så den skal konverteres til et tal uanset...

Men jeg kan nemt forestille mig at jeg vil bruge string som input.
Avatar billede tjp Mester
01. marts 2012 - 11:54 #3
Der er vel noget med at oprette funktioner som håndterer regneopgaver som fx modulus i dit 62-talsystem med strings som input uden lave overflow på longs.
Avatar billede arne_v Ekspert
02. marts 2012 - 19:30 #4
Har du adgang til en compiler som kan builde et COM objekt?

Saa kunne man jo kode det i et andet sprog og bruge det fra VBA!
Avatar billede tingholm Mester
12. april 2012 - 10:48 #5
Jeg har ikke mod på at lave en funktion der regner modulus 62 på en string ;)

Jeg har i stedet fået lavet en work-around, så jeg kan affinde mig med begrænsningerne i long...

Tak for input og beklager min sene tilbagemelding :/
Avatar billede arne_v Ekspert
14. april 2012 - 03:46 #6
Ikke mod paa en COM komponent?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester