Recht sinnfrei, aber wer’s mal haben möchte: Zahlen wandeln in ein beliebiges Zahlensystem unter VB6.
Naja, beliebig ist relativ. Die hier aufgeführte Version macht’s bis zum 35er-System (und bedient sich dabei der restlichen Buchstaben bis “Z” nach dem 16er-System mit “F”).
Private Function lfWandler(ByVal iZahl As Long, ByVal iBasis As Long) As String Dim lvZahlen As String Dim lvErgebnis As String Dim lvRest As Long If iZahl = 0 Then lfWandler = "0": Exit Function If iBasis = 1 Then lfWandler = iZahl: Exit Function lvZahlen = "0123456789ABCDEFGHIJKLMNOPQRSTUVXYZ" lvRest = iZahl While Not (lvRest = 0) lvErgebnis = Mid(lvZahlen, lvRest Mod iBasis + 1, 1) & lvErgebnis lvRest = iZahl \ iBasis iZahl = lvRest Wend lfWandler = lvErgebnis End Function
Private Function lfWandler(ByVal iZahl As Long, ByVal iBasis As Long) As String Dim lvZahlen As String Dim lvErgebnis As String Dim lvRest As Long If iZahl = 0 Then lfWandler = "0": Exit Function If iBasis = 1 Then lfWandler = iZahl: Exit Function lvZahlen = "0123456789ABCDEFGHIJKLMNOPQRSTUVXYZ" lvRest = iZahl While Not (lvRest = 0) lvErgebnis = Mid(lvZahlen, lvRest Mod iBasis + 1, 1) & lvErgebnis lvRest = iZahl \ iBasis iZahl = lvRest Wend lfWandler = lvErgebnis End Function
Ich glaube, das war eine der ersten Routinen, die ich je geschrieben habe. Damals noch im BASIC des VC-20
Natürlich kann man den lvZahlen-String noch beliebig erweitern. Wenigstens solange man unterschiedliche ASCII-Zeichen zur Vverfügung hat…
Eine tolle Erweiterung wäre die Bearbeitung von negativen Zahlen und “krummen” Basen. Viel Erfolg

0 Kommentare.