All pastes #837338 Raw Edit

Anonymous

public text v1 · immutable
#837338 ·published 2007-12-29 15:43 UTC
rendered paste body
Function Base22Encoder(Chaine : String) : String;
Const
  Code22 = 'ABCDEFGHJKLMNPQRSTUWXY';
Var
  Base10, i, k, Temp, Mul, Modu, Posi : Integer;
  Base22 : String;
Begin
  Base10 := 0;
  For i := 1 to Length(Chaine) Do
  Begin
    If Pos(Chaine[i],Code22) <> 0 Then
    Base10 := Base10 + Pos(Chaine[i],Code22)-1;
  End;
  Base22 := '';
  Modu := (Base10 Mod 22);
  For i := 1 to Length(Chaine) Do
  Begin
    Mul := i * Modu;
    k := (Modu * Modu) + Round(Mul * 3.259);
    Posi := Pos(Chaine[i],Code22);
    If Posi = 0 then Posi := 1;
    Temp := Posi - 1 - k;
    If Temp > 0 then Temp := Temp Mod 22;
    While Temp < 0 Do Temp := Temp + 22;
    Base22 := Base22 + Code22[Temp+1];
  End;
  result := Base22;
End;