Mit der Oct-Funktion in Visual Basic können Sie eine Dezimalzahl in eine Oktalzahl konvertieren. Eine Funktion zur Konvertierung in umgekehrter Richtung, also von einer Oktalzahl in eine Dezimalzahl, werden Sie jedoch nicht finden.
Im Prinzip ist dazu auch keine gesonderte Funktion notwendig. Denn mit der bereits vorhandene "Allerwelts"-Funktion Val können Sie die Konvertierung erledigen. Die Val-Funktion erkennt allerdings nur dann einen String als Oktalzahl, wenn er mit den VB-typischen Zeichen "&O" beginnt, also etwa "&O123" lautet. Fehlen diese "Vor"zeichen, müssen Sie diese zuerst davor setzen.
Die Hilfsfunktion OctToDec erledigt dies automatisch. Ihr können Sie eine Oktalzahl sowohl mit als auch ohne "&O"-Kennung übergeben. Und falls der Oktal-String etwa lediglich mit dem in C üblichen "O" beginnen sollte, kann diese Funktion das auch verarbeiten und den korrekten Wert als Datentyp Long zurückgeben.
Public Function OctToDec(OctValue As String) As Long
On Error Resume Next
If UCase$(Left$(OctValue, 1) = "O" Then
OctToDec = Val("&" & OctValue)
ElseIf UCase$(Left$(OctValue, 2)) <> "&O" Then
OctToDec = Val("&O" & OctValue)
Else
OctToDec = Val(OctValue)
End If
End Function
|