示例#1
0
        private void KonvTxtBinButton_OnClick(object sender, RoutedEventArgs e)
        {
            if (this.FileContent.Text == "")
            {
                MessageBox.Show("Nie wczytano pliku lub nie wpisano znaków!", "Ostrzeżenie", MessageBoxButton.OK,
                                MessageBoxImage.Warning);

                return;
            }
            FileReader fr    = new FileReader();
            var        temp1 = fr.BinConvert(this.FileContent.Text);
            var        temp2 = fr.Make8ElementPerRow(temp1);
            var        mo    = new MathOperations();
            var        temp3 = mo.suma_kontrolna(temp2, mo.get_hash_table());

            var aaa = FileHandler.print_array_n_row(temp3, 16).ToCharArray();

            this.FileContent.Text = FileHandler.print_array_n_row(temp3, 16);
        }
示例#2
0
        private void CheckErrorsButton_OnClick(object sender, RoutedEventArgs e)
        {
            if (this.FileContent.Text == "")
            {
                MessageBox.Show("Nie wczytano pliku lub nie wpisano znakow!", "Ostrzeżenie", MessageBoxButton.OK,
                                MessageBoxImage.Warning);

                return;
            }

            string temp1        = FileContent.Text;
            var    errorCounter = Regex.Matches(temp1, @"[A-Za-zżźćńółęąśŻŹĆĄŚĘŁÓŃ2-9]").Count; //sprawdzanie, czy w okienku występują tylko "0" i "1"

            if (errorCounter > 0 || temp1.Contains(" "))
            {
                MessageBox.Show($"Podany tekst nie jest binarny! Zawiera {errorCounter} niepoprawnych znaków", "Ostrzeżenie", MessageBoxButton.OK,
                                MessageBoxImage.Hand);
                return;
            }

            if (temp1.Length < 16)
            {
                MessageBox.Show("Błędny format - zbyt mało znaków!", "Ostrzeżenie", MessageBoxButton.OK,
                                MessageBoxImage.Hand);
                return;
            }

            //Część programu po sprawdzeniu czy w okienku nie ma błędów

            var temp2 = FileHandler.ReadFile(temp1);
            var mo    = new MathOperations();

            //Sprawdzanie błędów
            var errors     = mo.CreateErrorArray(temp2);
            var errorList  = mo.FindAllErrors(temp2, errors, mo.get_hash_table());
            var checkIfAny = FileHandler.print_array_n_row(errorList, 16).Contains('1');

            if (checkIfAny)
            {
                string rowsWithErrors = String.Empty;
                int    numberOfErrors = 0;
                string errorPlacement = String.Empty;
                for (int i = 0; i < errorList.Length / 16; i++)
                {
                    int doubleError = 0;
                    for (int j = 0; j < 16; j++)
                    {
                        if (errorList[i, j] == '1')
                        {
                            doubleError++;
                            numberOfErrors++;
                            rowsWithErrors += i + 1.ToString();
                            if (doubleError == 2)
                            {
                                errorPlacement += ", " + "bit " + (j + 1).ToString();
                            }
                            else
                            {
                                errorPlacement += "Rząd " + (i + 1).ToString() + " bit " + (j + 1).ToString();
                            }
                        }
                    }
                    if (doubleError > 0)
                    {
                        errorPlacement += "\r\n";
                    }

                    if (i == (errorList.Length / 16) - 1)
                    {
                        rowsWithErrors += "";
                    }
                    else
                    {
                        rowsWithErrors += ", ";
                    }
                }
                MessageBoxResult result = MessageBox.Show($"Znaleziono {numberOfErrors} błedów:\r\n" + errorPlacement + "\r\nCZY CHCIAŁBYŚ JE NAPRAWIĆ?",
                                                          "Powiadomienie o Błędach", MessageBoxButton.YesNo, MessageBoxImage.Question);

                if (result == MessageBoxResult.Yes)
                {
                    mo.CorrectErrors(errorList, temp2);
                    FileContent.Text = FileHandler.print_array_n_row(temp2, 16);
                }
            }
            else
            {
                MessageBox.Show("Nie znaleziono błędów", "Informacja", MessageBoxButton.OK, MessageBoxImage.Information);
            }
        }