Перевести код кодировки с Delphi - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Вот код кодировки написанный на delphi
Function Cript(Source:WideString):WideString;
var i:Integer;
    hashTab:array [1..9] of integer;
    Key:Integer;
    symb:Char;[CSHARP][/CSHARP]
begin
Cript:='';key:=1;symb:=#0;
hashTab[1]:=-3;hashTab[2]:=1;hashTab[3]:=8;
hashTab[4]:=4;hashTab[5]:=6;hashTab[6]:=-7;
hashTab[7]:=-2;hashTab[8]:=-5;hashTab[9]:=11;
 
  for i:=1 to length(Source) do
        begin
        inc(key);
        if (key/2) = (key div 2) then symb:=chr(ord(Source[i])+hashtab[key]);
        if (key/3) = (key div 3) then symb:=chr(ord(Source[i])+hashtab[key]);
        if (key/4) = (key div 4) then symb:=chr(ord(Source[i])+hashtab[key]);
        if (key/5) = (key div 5) then symb:=chr(ord(Source[i])+hashtab[key]);
        if (key/6) = (key div 6) then symb:=chr(ord(Source[i])+hashtab[key]);
        if (key/7) = (key div 7) then symb:=chr(ord(Source[i])+hashtab[key]);
        if (key/8) = (key div 8) then symb:=chr(ord(Source[i])+hashtab[key]);
        if (key/9) = (key div 9) then symb:=chr(ord(Source[i])+hashtab[key]);
        if key>=9 then key:=1;
        result:=result+symb;
        end;
end;
Вот попытка перевести его в c#
public string DeCript(string textcript)
        {
            int i, li;
            int key = 1;
            int[] hashTab = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9};
            float key1 = 1.0F;
            char symb = '\0';
            string s = "";
            hashTab[1] = - 3;
            hashTab[2] = 1;
            hashTab[3] = 8;
            hashTab[4] = - 44;
            hashTab[5] = 6;
            hashTab[6] = -7;
            hashTab[7] = -2;
            hashTab[8] = -5;
            hashTab[9] = 11;
            li = textcript.Length;
            for (i = 1; i < li; i++)
            {
                key++;
                key1++;
                if (key1 / 2 == key / 2)
                    symb = Convert.ToChar(Convert.ToByte(textcript[i] + hashTab[key]));
                if (key1 / 3 == key / 3)
                    symb = Convert.ToChar(Convert.ToByte(textcript[i] + hashTab[key]));
                if (key1 / 4 == key / 4)
                    symb = Convert.ToChar(Convert.ToByte(textcript[i] + hashTab[key]));
                if (key1 / 5 == key / 5)
                    symb = Convert.ToChar(Convert.ToByte(textcript[i] + hashTab[key]));
                if (key1 / 6 == key / 6)
                    symb = Convert.ToChar(Convert.ToByte(textcript[i] + hashTab[key]));
                if (key1 / 7 == key / 7)
                    symb = Convert.ToChar(Convert.ToByte(textcript[i] + hashTab[key]));
                if (key1 / 8 == key / 8)
                    symb = Convert.ToChar(Convert.ToByte(textcript[i] + hashTab[key]));
                if (key1 / 9 == key / 9)
                    symb = Convert.ToChar(Convert.ToByte(textcript[i] + hashTab[key]));
                if (key >= 9)
                {
                    key1 = 1.0F;
                    key = 1;
                }
                s.Insert(s.Length + 1, symb.ToString);
 
            }
        }
Нужно добавить в конец строки закодированный символ. Помогите пожалуйста.

Решение задачи: «Перевести код кодировки с Delphi»

textual
Листинг программы
sbyte[] SetCode(string s)
        {
            int i = 0;
            int i1, i2;
            while ((s.IndexOf(":") >= 0)&&(s.IndexOf(";") >= 0))
            {
                i++;
                i1 = s.IndexOf(":");
                i2 = s.IndexOf(";");
                sbyte[] bufkey = new sbyte [i];
                bufkey[i] = Convert.ToSByte(s.Substring(i1+1, i2-i1));
 
            }
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.929 из 5