Code-Beispiel
BASE64 Kodier / Dekodier-Funktion
Lizenz: | Erster Autor: | Letzte Bearbeitung: |
k. A. | ThePuppetMaster | 25.01.2013 |
Dieses Beispiel zeigt, wie ein Text in BASE64 Kodiert, und auch wieder Dekodiert werden kann.
Hierzu sind die folgenden Funktionennötig. (Darunter findet sich ein kleines Beispiel zur Nutzung.
Idealer weise wird der Code in eine .bi kopiert und in das Projekt eingebunden. Spart auch Platz .)
'###############################################################################################################
Function Base64_Decode(ByRef V_Source As String) As String
If V_Source = "" Then Return ""
Dim X as UInteger
Dim Base64_String as String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
Dim Code(0 to 255) As UByte
For X = 0 to Len(Base64_String) - 1
Code(Base64_String[X]) = X
Next
Dim D as String = V_Source
Dim XLen As UInteger = Len(D)
Dim XRest As UInteger = XLen Mod 4
If XRest > 0 Then D += String(4 - XRest, 0): XLen = Len(D)
Dim XCNT As UInteger
Dim Result(0 to XLen - 1) As UByte
For X = 0 To XLen - 1 Step 4
Result(XCNT) = ((Code(D[X]) * 4 + Int(Code(D[X + 1]) / 16)) And 255): XCNT += 1
Result(XCNT) = ((Code(D[X + 1]) * 16 + Int(Code(D[X + 2]) / 4)) And 255): XCNT += 1
Result(XCNT) = ((Code(D[X + 2]) * 64 + Code(D[X + 3])) And 255): XCNT += 1
Next
ReDim Preserve Result(0 to XCNT - 1) as UByte
D = Space(XCNT)
For X = 0 to XCNT - 1
If Result(X) = 0 Then Exit For
D[X] = Result(X)
Next
Return D
End Function
'---------------------------------------------------------------------------------------------------------------
Function Base64_Encode(ByRef V_Source As String) As String
If V_Source = "" Then Return ""
Dim X as UInteger
Dim Base64_String as String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
Dim XLen As UInteger = Len(V_Source)
Dim XRest As UInteger = XLen Mod 3
Dim XN As UInteger = XLen
If XRest > 0 Then XN = ((XLen \ 3) + 1) * 3
Dim D as String = String(4 * XN / 3, 0)
For X = 0 To XN / 3 - 1
D[4 * X] = Base64_String[Int(V_Source[3 * X] / 4)]
D[4 * X + 1] = Base64_String[(V_Source[3 * X] And 3) * 16 + Int(V_Source[3 * X + 1] / 16)]
D[4 * X + 2] = Base64_String[(V_Source[3 * X + 1] And 15) * 4 + Int(V_Source[3 * X + 2] / 64)]
D[4 * X + 3] = Base64_String[V_Source[3 * X + 2] And 63]
Next
Select Case XRest
Case 1: D[Len(D) - 1] = 61: D[Len(D) - 2] = 61
Case 2: D[Len(D) - 1] = 61
End Select
Return D
End Function
Und hier das Beispiel:
Dim D as String
Dim T as String
D = "Test.Hallo! Wie geht es dir?"
Print ">" & D & "<"
T = Base64_Encode(D)
Print ">" & T & "<"
Print ">" & Base64_Decode(T) & "<"
Viel Erfolg!
Zusätzliche Informationen und Funktionen | |||||||
---|---|---|---|---|---|---|---|
|
|