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

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

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

Здравствуйте. Вот код кодировки написанный на delphi
Листинг программы
  1. Function Cript(Source:WideString):WideString;
  2. var i:Integer;
  3. hashTab:array [1..9] of integer;
  4. Key:Integer;
  5. symb:Char;[CSHARP][/CSHARP]
  6. begin
  7. Cript:='';key:=1;symb:=#0;
  8. hashTab[1]:=-3;hashTab[2]:=1;hashTab[3]:=8;
  9. hashTab[4]:=4;hashTab[5]:=6;hashTab[6]:=-7;
  10. hashTab[7]:=-2;hashTab[8]:=-5;hashTab[9]:=11;
  11. for i:=1 to length(Source) do
  12. begin
  13. inc(key);
  14. if (key/2) = (key div 2) then symb:=chr(ord(Source[i])+hashtab[key]);
  15. if (key/3) = (key div 3) then symb:=chr(ord(Source[i])+hashtab[key]);
  16. if (key/4) = (key div 4) then symb:=chr(ord(Source[i])+hashtab[key]);
  17. if (key/5) = (key div 5) then symb:=chr(ord(Source[i])+hashtab[key]);
  18. if (key/6) = (key div 6) then symb:=chr(ord(Source[i])+hashtab[key]);
  19. if (key/7) = (key div 7) then symb:=chr(ord(Source[i])+hashtab[key]);
  20. if (key/8) = (key div 8) then symb:=chr(ord(Source[i])+hashtab[key]);
  21. if (key/9) = (key div 9) then symb:=chr(ord(Source[i])+hashtab[key]);
  22. if key>=9 then key:=1;
  23. result:=result+symb;
  24. end;
  25. end;
Вот попытка перевести его в c#
Листинг программы
  1. public string DeCript(string textcript)
  2. {
  3. int i, li;
  4. int key = 1;
  5. int[] hashTab = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9};
  6. float key1 = 1.0F;
  7. char symb = '\0';
  8. string s = "";
  9. hashTab[1] = - 3;
  10. hashTab[2] = 1;
  11. hashTab[3] = 8;
  12. hashTab[4] = - 44;
  13. hashTab[5] = 6;
  14. hashTab[6] = -7;
  15. hashTab[7] = -2;
  16. hashTab[8] = -5;
  17. hashTab[9] = 11;
  18. li = textcript.Length;
  19. for (i = 1; i < li; i++)
  20. {
  21. key++;
  22. key1++;
  23. if (key1 / 2 == key / 2)
  24. symb = Convert.ToChar(Convert.ToByte(textcript[i] + hashTab[key]));
  25. if (key1 / 3 == key / 3)
  26. symb = Convert.ToChar(Convert.ToByte(textcript[i] + hashTab[key]));
  27. if (key1 / 4 == key / 4)
  28. symb = Convert.ToChar(Convert.ToByte(textcript[i] + hashTab[key]));
  29. if (key1 / 5 == key / 5)
  30. symb = Convert.ToChar(Convert.ToByte(textcript[i] + hashTab[key]));
  31. if (key1 / 6 == key / 6)
  32. symb = Convert.ToChar(Convert.ToByte(textcript[i] + hashTab[key]));
  33. if (key1 / 7 == key / 7)
  34. symb = Convert.ToChar(Convert.ToByte(textcript[i] + hashTab[key]));
  35. if (key1 / 8 == key / 8)
  36. symb = Convert.ToChar(Convert.ToByte(textcript[i] + hashTab[key]));
  37. if (key1 / 9 == key / 9)
  38. symb = Convert.ToChar(Convert.ToByte(textcript[i] + hashTab[key]));
  39. if (key >= 9)
  40. {
  41. key1 = 1.0F;
  42. key = 1;
  43. }
  44. s.Insert(s.Length + 1, symb.ToString);
  45. }
  46. }
Нужно добавить в конец строки закодированный символ. Помогите пожалуйста.

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

textual
Листинг программы
  1. sbyte[] SetCode(string s)
  2.         {
  3.             int i = 0;
  4.             int i1, i2;
  5.             while ((s.IndexOf(":") >= 0)&&(s.IndexOf(";") >= 0))
  6.             {
  7.                 i++;
  8.                 i1 = s.IndexOf(":");
  9.                 i2 = s.IndexOf(";");
  10.                 sbyte[] bufkey = new sbyte [i];
  11.                 bufkey[i] = Convert.ToSByte(s.Substring(i1+1, i2-i1));
  12.  
  13.             }
  14.         }

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут