Base64 decode data: Difference between revisions
Content added Content deleted
Line 1,032: | Line 1,032: | ||
</pre> |
</pre> |
||
=={{header|QB64}}== |
=={{header|QB64}}== |
||
<lang vb> |
<lang vb>Option _Explicit |
||
Option _Explicit |
|||
Dim Shared As String Base64(0 To 63) |
|||
Dim As _Unsigned Integer x |
|||
Restore BASE64 |
|||
For x = 0 To 63 |
|||
Read Base64(x) |
|||
Next |
|||
Dim As String udata, decoded |
Dim As String udata, decoded |
||
Line 1,049: | Line 1,041: | ||
Print udata |
Print udata |
||
Print decoded |
Print decoded |
||
BASE64: |
|||
Data "A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z" |
|||
Data "a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z" |
|||
Data "0","1","2","3","4","5","6","7","8","9","+","/" |
|||
Function findIndex& (value As _Unsigned _Byte) |
Function findIndex& (value As _Unsigned _Byte) |
||
Line 1,080: | Line 1,067: | ||
Function encode$ (source As String) |
Function encode$ (source As String) |
||
Dim As String Base64: Base64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" |
|||
Dim As _Unsigned _Integer64 length: length = Len(source) |
Dim As _Unsigned _Integer64 length: length = Len(source) |
||
Dim As _Unsigned _Integer64 it, strend |
Dim As _Unsigned _Integer64 it, strend |
||
Line 1,089: | Line 1,077: | ||
it = it + 1 |
it = it + 1 |
||
b1 = Asc(Mid$(source, it, 1)) |
b1 = Asc(Mid$(source, it, 1)) |
||
sink = sink + |
sink = sink + Mid$(Base64, _SHR(b1, 2), 1) |
||
acc = _SHL(b1 And &H3, 4) |
acc = _SHL(b1 And &H3, 4) |
||
If it <> strend Then |
If it <> strend Then |
||
Line 1,095: | Line 1,083: | ||
b2 = Asc(Mid$(source, it, 1)) |
b2 = Asc(Mid$(source, it, 1)) |
||
acc = acc Or _SHR(b2, 4) |
acc = acc Or _SHR(b2, 4) |
||
sink = sink + |
sink = sink + Mid$(Base64, acc, 1) |
||
acc = _SHL(b2 And &HF, 2) |
acc = _SHL(b2 And &HF, 2) |
||
If it <> strend Then |
If it <> strend Then |
||
Line 1,101: | Line 1,089: | ||
b3 = Asc(Mid$(source, it, 1)) |
b3 = Asc(Mid$(source, it, 1)) |
||
acc = acc Or _SHR(b3, 6) |
acc = acc Or _SHR(b3, 6) |
||
sink = sink + |
sink = sink + Mid$(Base64, acc, 1) |
||
sink = sink + |
sink = sink + Mid$(Base64, b3 And &H3F, 1) |
||
Else |
Else |
||
sink = sink + |
sink = sink + Mid$(Base64, acc, 1) |
||
sink = sink + "=" |
sink = sink + "=" |
||
End If |
End If |
||
Else |
Else |
||
sink = sink + |
sink = sink + Mid$(Base64, acc, 1) |
||
sink = sink + "=" |
sink = sink + "=" |
||
sink = sink + "=" |
sink = sink + "=" |
||
Line 1,154: | Line 1,142: | ||
Wend |
Wend |
||
decode = sink |
decode = sink |
||
End Function |
End Function</lang> |
||
</lang> |
|||
{{out}} |
{{out}} |
||
<pre> |
<pre> |