Delphi & C#

Djutty
Дата: 10.06.2009 13:30:57
доброе время суток, есть задача: дан код написаный на C# необходимо тоже самое сделать на Delphi
        private static string cryptString(string sIn, int nLength)
        {
            string s;
            int nChar, nShift, i;
            s = sIn;
            nShift = 0;
            char[] inputString = s.ToCharArray();

            for (int r = 0; r < s.Length; r++)
            {
                nShift = nShift + (int)inputString[r];
            }

            while (sIn.Length < nLength)
                sIn = sIn + sIn;
            i = 0;
            s = "";
            char[] outString = sIn.ToCharArray();
            while (i < nLength)
            {
                nChar = (int)outString[i];
                nShift = nShift + nChar;
                nChar = nChar * i + nShift;
                nChar = nChar % 96 + 32;
                s = s + Convert.ToChar(nChar);
                i = i + 1;
            }
            return s;
        }
Данный код шифрует строку данных.
Может кто-то знает как реализовать сей метод на Delphi.
OracleLover
Дата: 10.06.2009 14:02:03
Djutty,

как-то так

function cryptString(sIn: string; nLength: integer): string;
var
  s: string;
  nChar, nShift, i, r: integer;

begin
  Result := '';

  s := sIn;
  nShift := 0;

  for r := 0 to Length(s) do
    nShift := nShift + ORD(S[r]);

  while Length(sIn) < nLength do
    sIn := sIn + sIn;

  i := 0;
  s := '';

  while i < nLength do
  begin
    nChar := ORD(sIn[i]);
    nShift := nShift + nChar;
    nChar := nChar * i + nShift;
    nChar := nChar mod 96 + 32;
    s := s + CHR(nChar);
    i := i + 1;
  end;

  Result := s;
end;