private void BT_Code_MouseUp(object sender, MouseEventArgs e) { //Очистка RichTextBox-ов RTB_BinStr.Clear(); RTB_AditElems.Clear(); RTB_ConvolCode.Clear(); bin_arr = StrngToBin.StrToBin(RTB_Source.Text); adit_elem = WorkWithFinka.CodeArr(StrngToBin.StrArrToStr(bin_arr)); convol_code = WorkWithFinka.CodeViaFinka(RTB_Source.Text); convol_code_inter = convol_code; recovered_convol_code = WorkWithFinka.UncodeFinkaArr(convol_code_inter); str_recovered = StrngToBin.BinToStr(recovered_convol_code); FillRTB(RTB_BinStr, bin_arr); // Выводим каждый элемент исходной строки в двоичном коде FillRTB(RTB_AditElems, adit_elem, true); // Вывод дополнительных элементов for (int i = 0; i < convol_code.Length; i++) // Вывод свёрточного кода { for (int j = 0; j < convol_code[i].Length; j++) { RTB_ConvolCode.Text += convol_code[i][j]; RTB_ConvolCode.Select(j, 1); RTB_ConvolCode.SelectionColor = j % 2 == 0 ? Color.Black : Color.Green; // Цвет для выделенной строки не задаётся почему-то... RTB_ConvolCode.DeselectAll(); } RTB_ConvolCode.Text += " "; } FillInterfRTB(); // Заполняем панель с помехами }
private void BT_InsertInterf_MouseUp(object sender, MouseEventArgs e) { System.Drawing.Point[] InterferdBits_arr = InterferenceGenerator.GenInter(ref convol_code_inter, (int)NUD_InterfIntensive.Value); recovered_convol_code = WorkWithFinka.UncodeFinkaArr(convol_code_inter); str_recovered = StrngToBin.BinToStr(recovered_convol_code); for (int i = 0; i < RTB_ConvolCodeWithInter.TextLength; i++) // Должно раскрашивать красным цветом помехи в свёрточном коде (изменённые биты), но не работает... { if (RTB_ConvolCodeWithInter.Text[i] != RTB_ConvolCode.Text[i]) { RTB_ConvolCodeWithInter.Select(i, 1); RTB_ConvolCodeWithInter.SelectionColor = Color.Red; RTB_ConvolCodeWithInter.DeselectAll(); } } for (int i = 0; i < RTB_RecoveredCode.TextLength; i++) // Должно раскрашивать красным цветом помехи в восстановленом коде (изменённые биты), но не работает... { if (RTB_RecoveredCode.Text[i] != RTB_BinStr.Text[i]) { RTB_RecoveredCode.Select(i, 1); RTB_RecoveredCode.SelectionColor = Color.Red; RTB_RecoveredCode.DeselectAll(); } } FillInterfRTB(); }