Einzelnen Beitrag anzeigen

Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#7

Re: unicodefähiges Base32Decode

  Alt 3. Feb 2010, 09:02
Ö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;
  Mit Zitat antworten Zitat