← Повернутись назад

Обробка тексту - Windows Forms додаток

Методичка з повним кодом C# та JavaScript демонстрацією

Опис програми

Windows Forms додаток для обробки тексту з валідацією введення та динамічним інтерфейсом:

  • 4 різних завдання для обробки тексту
  • Валідація введених даних
  • Динамічне відображення полів вводу
  • Обмеження вводу тільки цифр у числові поля
  • Кнопка "OK" активна тільки при коректному заповненні
  • Функція очищення форми

Функціонал завдань

Доступні операції:

  • 1. Підрахунок кількості входжень символу
  • 2. Видалення всіх входжень символу
  • 3. Пошук слів заданої довжини
  • 4. Перетворення перших літер слів у верхній регістр

Особливості реалізації:

  • Автоматична валідація форми
  • Умовна активність кнопки "OK"
  • Обробка помилок вводу
  • Зручний інтерфейс користувача

Демонстрація роботи програми (JavaScript)

Спробуйте функціонал програми прямо в браузері:

Результат:

Код C# - Form1.cs

Основний код форми з логікою обробки
using System;
using System.Linq;
using System.Windows.Forms;

namespace StudentApp
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            lblStudent.Text = "Прізвище учня: Іванов";
        }

        private void TextBox_TextChanged(object sender, EventArgs e)
        {
            ValidateForm();
        }

        private void ComboBoxTask_SelectedIndexChanged(object sender, EventArgs e)
        {
            // Динамічне відображення полів
            switch (comboBoxTask.SelectedIndex)
            {
                case 0: // Підрахунок символів
                case 1: // Видалення символів
                    textBoxChar.Visible = true;
                    textBoxNumber.Visible = false;
                    break;
                case 2: // Пошук слів за довжиною
                    textBoxChar.Visible = false;
                    textBoxNumber.Visible = true;
                    break;
                case 3: // Великі перші літери
                    textBoxChar.Visible = false;
                    textBoxNumber.Visible = false;
                    break;
            }
            ValidateForm();
        }

        private void ValidateForm()
        {
            bool isValid = true;

            // Перевірка основного поля
            if (string.IsNullOrWhiteSpace(textBox1.Text))
                isValid = false;

            // Перевірка вибору завдання
            if (comboBoxTask.SelectedIndex == -1)
                isValid = false;

            // Перевірка додаткових полів
            if (comboBoxTask.SelectedIndex == 0 || comboBoxTask.SelectedIndex == 1)
            {
                if (string.IsNullOrWhiteSpace(textBoxChar.Text))
                    isValid = false;
            }
            else if (comboBoxTask.SelectedIndex == 2)
            {
                if (!int.TryParse(textBoxNumber.Text, out int number) || number < 1 || number > 20)
                    isValid = false;
            }

            btnOK.Enabled = isValid;
        }

        private void BtnOK_Click(object sender, EventArgs e)
        {
            string inputText = textBox1.Text;
            
            switch (comboBoxTask.SelectedIndex)
            {
                case 0: // Підрахунок символів
                    char searchChar = textBoxChar.Text[0];
                    int count = inputText.Count(c => c == searchChar);
                    lblResult1.Text = $"Кількість входжень символу '{searchChar}': {count}";
                    break;
                    
                case 1: // Видалення символів
                    char removeChar = textBoxChar.Text[0];
                    string cleanedText = inputText.Replace(removeChar.ToString(), "");
                    lblResult1.Text = $"Текст після видалення '{removeChar}':";
                    lblResult2.Text = cleanedText;
                    break;
                    
                case 2: // Пошук слів за довжиною
                    int wordLength = int.Parse(textBoxNumber.Text);
                    string[] words = inputText.Split(new[] { ' ', ',', '.' }, 
                        StringSplitOptions.RemoveEmptyEntries);
                    var matchingWords = words.Where(w => w.Length == wordLength).ToArray();
                    lblResult1.Text = $"Слова з довжиною {wordLength}:";
                    lblResult2.Text = matchingWords.Length > 0 ? string.Join(", ", matchingWords) : "Слів не знайдено";
                    break;
                    
                case 3: // Великі перші літери
                    string[] wordsToCapitalize = inputText.Split(' ');
                    for (int i = 0; i < wordsToCapitalize.Length; i++)
                    {
                        if (!string.IsNullOrEmpty(wordsToCapitalize[i]))
                        {
                            wordsToCapitalize[i] = char.ToUpper(wordsToCapitalize[i][0]) + 
                                wordsToCapitalize[i].Substring(1);
                        }
                    }
                    lblResult1.Text = "Текст з великими першими літерами:";
                    lblResult2.Text = string.Join(" ", wordsToCapitalize);
                    break;
            }
        }
    }
}

Інструкція користувача

Кроки роботи:

  • Введіть текст у поле "Початковий рядок"
  • Оберіть завдання з випадаючого списку
  • Заповніть додаткові поля (якщо потрібно)
  • Натисніть "OK" для виконання операції
  • Перегляньте результат у правій частині
  • Використовуйте "Очистити" для скидання форми

Особливості:

  • Кнопка "OK" активна тільки при коректному заповненні
  • Поле для числа приймає тільки цифри
  • Поле для символу обмежене одним символом
  • Динамічне відображення додаткових полів
  • Миттєва валідація введених даних