コード例 #1
0
ファイル: Form1.cs プロジェクト: zugcic/KodiranjeTeksta
 void SetValuesFromText(TextValues text_values, int length, string text, Dictionary <char, int> d)
 {
     //postavljanje vrijednosti znakova iz teksta u niz
     for (int i = 0; i < length; ++i)
     {
         for (int j = 0; j < 2048; ++j)
         {
             if (text.ElementAt(i) == d.ElementAt(j).Key)
             {
                 text_values[i] = d.ElementAt(j).Value;
                 break;
             }
         }
     }
 }
コード例 #2
0
ファイル: Form1.cs プロジェクト: zugcic/KodiranjeTeksta
        private void dekodiraj_Click(object sender, EventArgs e)
        {
            if (text_dekod_form.Text == "")
            {
                text_dekod_form.Text = "Morate upisati neki tekst!";
                return;
            }

            if (key_from_form.Text == "")
            {
                key_from_form.Text = "Morate upisati neki ključ!";
                return;
            }

            Dictionary <char, int> d = new Dictionary <char, int>();

            for (int i = 0; i < 2048; ++i)
            {
                d.Add((char)(' ' + i), i);
            }

            string text_to_decode = text_dekod_form.Text;
            string key            = key_from_form.Text;

            if (key.Length > text_to_decode.Length)
            {
                text_dekod_form.Text = "Prekratka riječ, duljina teksta mora biti dulja od duljine ključa!";
                return;
            }

            key = KeyLonger(text_to_decode, key);              //poziv funkcije za proširenje ključa

            TextValues   text_values   = new TextValues(text_to_decode.Length);
            KeyValues    key_values    = new KeyValues(text_to_decode.Length);
            ResultValues result_values = new ResultValues(text_to_decode.Length);

            SetValuesFromText(text_values, text_to_decode.Length, text_to_decode, d);
            SetValuesFromKey(key_values, key.Length, key, d);


            for (int i = 0; i < key.Length; ++i)
            {
                result_values[i] = text_values[i] - key_values[i];
                if (result_values[i] < 0)
                {
                    result_values[i] = result_values[i] + 2048;
                }
            }
            string kodtext = string.Empty;

            for (int i = 0; i < key.Length; ++i)
            {
                for (int j = 0; j < 2048; ++j)
                {
                    if (result_values[i] == d.ElementAt(j).Value)
                    {
                        kodtext += d.ElementAt(j).Key;
                        break;
                    }
                }
            }

            text_code_form.Text = kodtext;
        }