Attribute VB_Name = "modEncoders"
Option Explicit
Const MODULE_NAME As String = "B64_Lv64"
Public Function B64(str As String) As String
Dim i As Long
i = Len(str)
B64 = Chr((i / 64) + 64) + Chr((i Mod 64) + 64)
End Function


' Example ASCII Number to Lv64 Number Encoder: txt_output.Text = VL64Encode(txt_input.Text)
Public Function VL64Encode(Data As String) As String
On Error Resume Next

Dim i As Long
Dim cod1 As String
Dim cod2 As String

If Data - 3 > 0 Then
For i = 0 To 3
If ((Data - i) Mod 4) = 0 Then
cod1 = Chr(i + 80)
cod2 = Chr((Data - i) / 4 + 64)
End If
Next i
VL64Encode = cod1 & cod2
Else
VL64Encode = Chr(Data + 72)
End If
End Function
Public Function LV64(Data As String) As String
Dim i As Integer
Dim cod1 As String
Dim cod2 As String
If Data - 3 > 0 Then
  For i = 0 To 3
    If ((Data - i) Mod 4) = 0 Then
    cod1 = i + 80
    cod1 = Chr(cod1)
    cod2 = (Data - i) / 4 + 64
    cod2 = Chr(cod2)
    End If
   Next i
LV64 = cod1 & cod2
Else
LV64 = Chr(Data + 72)
End If
End Function



' Example ASCII String to Lv64 Number Encoder: txt_output.Text = VL64Encode_2(txt_input.Text)
Public Function VL64Encode_2(Data As String) As String
On Error Resume Next

Dim i As Long
Dim cod1 As String
Dim cod2 As String

Data = Len(Data)

If Data - 3 > 0 Then
For i = 0 To 3
If ((Data - i) Mod 4) = 0 Then
cod1 = Chr(i + 80)
cod2 = Chr((Data - i) / 4 + 64)
End If
Next i
VL64Encode_2 = cod1 & cod2
Else
VL64Encode_2 = Chr(Data + 72)
End If
End Function



' Example Lv64 Number to ASCII Number Decoder: txt_output.Text = VL64Decode(txt_input.Text)
Public Function VL64Decode(Data As String) As String
On Error Resume Next

Dim Second As String
Dim nf As Long
Dim i As Long
Dim R As Long
Dim Id As String
Dim rawid As String

nf = (Asc(Left(Data, 1)) - 72) / 4
If nf < 1 Then
nf = 0
End If
If (nf Mod 2) = 0 Then
nf = nf / 2
For i = 1 To nf
R = R + ((Asc(Mid(Data, i + 1, 1)) - 64) * (64 ^ (i - 1)))
Next i

Id = (4 * R) + ((Asc(Left(Data, 1)) - 72) Mod 4)
Else
rawid = Left(Data, 2)
Second = Replace(rawid, "S", "", 1, 1)
Id = (Asc(Second) - 64) * 4 + nf
End If
VL64Decode = Id
End Function



' Example ASCII Number to B64 Number Encoder: txt_output.Text = encodeB64(txt_input.Text)
Public Function encodeB64(char As String) As String
Dim i As Long
i = Len(char)
encodeB64 = Chr((i / 64) + 64) + Chr((i Mod 64) + 64)
End Function



' Example ASCII String to B64 Number Encoder: txt_output.Text = encodeB64_2(txt_input.Text)
Public Function encodeB64_2(char As Long) As String
Dim i As Long
i = char
encodeB64_2 = Chr((i / 64) + 64) + Chr((i Mod 64) + 64)
End Function



' Example B64 Number to ASCII Number Decoder: txt_output.Text = decodeB64(txt_input.Text)
Public Function decodeB64(char As String) As Long
Dim char1 As Long
Dim char2 As Long
char1 = (Asc(Left$(char, 1)) - 64) * 64
char2 = Asc(Right$(char, 1)) - 64
decodeB64 = char1 + char2
End Function



' Example ASCII String to ASCII Number Encoder: txt_output.Text = Len(txt_input.Text)
' Function is a Visual Basic Main Function
