Перевести код кодировки с 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));
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д