Einzelnen Beitrag anzeigen

TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
609 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: MD5Print umkehren String zu MD5Digest wandeln

  Alt 17. Sep 2010, 11:36
Vielen dank euch beiden, jetzt steh ich nicht mehr auf dem Schlauch

Habe das auf jetzt wie folgt gelöst.

Delphi-Quellcode:
type
  MD5Digest: array[0..15] of byte;


function MD5Read(S: String): MD5Digest;
var
  i: Byte;
  c: Byte;

  function BaseToInt( const Value : string; const Base : Integer ) : Int64;
  var
    idx : Integer;
    pdx : Integer;
  begin
    if ( Base >= 2 ) and ( Base <= 36 ) then
      begin
        Result := 0;
        idx := 1;
        while idx <= Length( Value ) do
          begin
            Result := Result * Base;
            case Value[ idx ] of
              '0' .. '9' :
                pdx := Ord( Value[ idx ] ) - Ord( '0' );
              'A' .. 'Z' :
                pdx := Ord( Value[ idx ] ) - Ord( 'A' ) + 10;
              'a' .. 'z' :
                pdx := Ord( Value[ idx ] ) - Ord( 'a' ) + 10;
            else
              raise Exception.CreateFmt( 'Ungültiges Zeichen im Wert "%s" entdeckt!', [ Value ] );
            end;
            if pdx < Base then
              Result := Result + pdx
            else
              raise Exception.CreateFmt( 'Der Wert "%s" passt nicht zur Basis %d!', [ Value, Base ] );

            idx := idx + 1;
          end;
      end
    else
      raise Exception.CreateFmt( 'Basis %d ausserhalb des gülitigen Bereichs 2..36', [ Base ] );
  end;

begin

  c := 1;
  for i := 0 to 15 do begin
    result[i] := BaseToInt(Copy(S, c, 2), 16);
    Inc(c, 2);
  end;

end;
  Mit Zitat antworten Zitat