Öhm, muss man da nicht einfach nur immer seitenweise nach unten scrollen?
Dann kann man die Lösung einsehen.
Ich poste aber hier noch mal den dort gelisteten Code aus dem Jahre 2004:
Delphi-Quellcode:
function Base32Encode(source: String): String;
const
alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567';
var
i: Integer;
nr: Int64;
begin
result := '';
while length(source) >= 5 do begin
nr := 0;
for i := 1 to 5 do
nr := nr * 256 + ord(source[i]);
for i := 1 to 8 do begin
result := result + alphabet[(nr mod 32) + 1];
nr := nr div 32;
end;
delete(source, 1, 5);
end;
nr := 0;
if length(source) > 0 then begin
for i := 1 to length(source) do
nr := nr * 256 + ord(source[i]);
for i := 1 to 8 do begin
if nr > 0 then begin
result := result + alphabet[(nr mod 32) + 1];
nr := nr div 32;
end
else
result := result + '=';
end;
end;
end;
function Base32Decode(source: String): String;
const
alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567';
var
i: Integer;
nr: Int64;
p: Integer;
begin
result := '';
while length(source) >= 8 do begin
nr := 0;
for i := 8 downto 1 do begin
p := pos(source[i], alphabet);
if p > 0 then
nr := nr * 32 + p-1
else
nr := nr * 32;
end;
for i := 1 to 5 do begin
result := result + chr(nr mod 256);
nr := nr div 256;
end;
delete(source, 1, 8);
end;
end;