Peter Rachow @ http://www.peter-rachow.de
Function CodeBase64$(strInput$)
Dim T1%, T2%
Dim strIn$, strS$, strCh$, strOut$
Dim strLen%
strOut = ""
'strLen = Len(strInput) \ 6
strIn = strInput '& String((strLen + 1) * 6 - Len(strInput), "")
'String aus 0 und erzeugen
For T1 = 1 To Len(strIn)
strS = strS & MakeBitString(Asc(Mid$(strIn, T1, 1)))
Next
'String in 6er Gruppen zerlegen
For T1 = 1 To Len(strS) Step 6
Select Case MakeNumber(Mid$(strS, T1, 6))
Case 0 To 25: strCh = Chr(MakeNumber(Mid$(strS, T1, 6)) + 65)
Case 26 To 51: strCh = Chr(MakeNumber(Mid$(strS, T1, 6)) + 71)
Case 52 To 61: strCh = Chr(MakeNumber(Mid$(strS, T1, 6)) - 4)
Case 62: strCh = "+"
Case 63: strCh = "/"
Case Else: strCh = "?"
End Select
strOut = strOut & strCh
Next
strLen = Len(strOut) \ 4
strOut = strOut & String((strLen + 1) * 4 - Len(strOut), "=")
CodeBase64 = strOut
End Function
Function MakeNumber%(strIn$)
Dim T1%, intS%
intS = 0
For T1 = 0 To 5
intS = intS + Val(Mid(strIn, T1 + 1, 1)) * 2 ^ (5 - T1)
Next
MakeNumber = intS
End Function
A little bit complicated but very useful! Would like to unterstand!
B!