Перевести код кодировки с Delphi - C#
Формулировка задачи:
Здравствуйте.
Вот код кодировки написанный на delphi
Вот попытка перевести его в c#
Нужно добавить в конец строки закодированный символ.
Помогите пожалуйста.
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;
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)); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д