//Кнопка для вывода формы редактирования текста private void EditTextButton_Click(object sender, EventArgs e) { var EditTextForm = new EditTextForm(); EditTextForm.ShowDialog(); if (EditTextForm.DialogResult == DialogResult.OK) { DeleteSymbolArray = EditTextForm.currentText.SymbolMark; DeletePunctuationSymbolMethod(); currentMinimumLength = EditTextForm.currentText.MinWordLength; DeleteWordsSpecifiedLength(); } }
//Поле редактирования текста файла private void EditTextToolStripMenuItem_Click(object sender, EventArgs e) { var EditTextForm = new EditTextForm(); //Вызываем форму для выбора действий по редактированию текста файла EditTextForm.ShowDialog(); //Если результат работы формы ОК if (EditTextForm.DialogResult == DialogResult.OK) { //Передаем массив со знаками препинания, которые необходимо удалить в MainForm из EditTextForm DeleteSymbolArray = EditTextForm.currentText.SymbolMark; DeletePunctuationSymbolMethod(); //Передаем минимальную длину слова в MainForm из EditTextForm currentMinimumLength = EditTextForm.currentText.MinWordLength; DeleteWordsSpecifiedLength(); } }
//Метод, обеспечивающий обработку паки с файлами private void ProcessFolderFilesMethod() { FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog(); //Если результат диалога выбора папки равен ОК if (folderBrowserDialog.ShowDialog() == DialogResult.OK) { //Записываем в переменную путь к выбранно папке string folderName = folderBrowserDialog.SelectedPath; //Записываем в массив пути к файлам в указанной папке string[] folderFiles = Directory.GetFiles(folderName, "*.txt", SearchOption.AllDirectories); //Выводим пользователю диалог с запросом на необходимость обработки файлов в указанной папке DialogResult result = MessageBox.Show("Process a files in folder?", "Process", MessageBoxButtons.OKCancel, MessageBoxIcon.Information); if (result == DialogResult.OK) { var editTextForm = new EditTextForm(); editTextForm.ShowDialog(); if (editTextForm.DialogResult == DialogResult.OK) { DeleteSymbolArray = editTextForm.currentText.SymbolMark; currentMinimumLength = editTextForm.currentText.MinWordLength; //Выводим пользователю сообщение о необходимости сохранения файлов в папке DialogResult SaveFilesInFolder = MessageBox.Show("Save files in folder?", "Save", MessageBoxButtons.OKCancel, MessageBoxIcon.Information); if (SaveFilesInFolder == DialogResult.OK) { if (folderBrowserDialog.ShowDialog() == DialogResult.OK) { //Записываем в переменную путь к выбранной для сохранения папке string folderSaveName = folderBrowserDialog.SelectedPath; //Циклом проходим по всем файла в выбранной папке for (var i = 0; i < folderFiles.Length; i++) { //Получаем имя файла, с которым программа работает в данный момент string folderSaveNameInFolder = Path.GetFileName(folderFiles[i]); //Получаем текст из файла, с которым программа взаимодействует в данный момент string fileTextInFolder = File.ReadAllText(folderFiles[i]); //Записываем в массив элементов текст из файла char[] symbolsArray = fileTextInFolder.ToCharArray(); //Записываем массив с текстом из файла в список var symbolsList = new List <char>(symbolsArray); //Циклом проходим по всем элементам списка for (int z = 0; z < symbolsList.Count; z++) { //Циклом проходим по всем элементам массива со знаками, которые необходимо удалить из текста for (int j = 0; j < DeleteSymbolArray.Length; j++) { //Если элемент списка symbolsList равен символу массива DeleteSymbolArray if (symbolsList[z] == DeleteSymbolArray[j]) { //Удаляем элемент списка symbolsList.RemoveAt(z); //Обнуляем счетчик для удаления для контрольной проверки текста z = 0; } } } //Записываем в строку результат обработки списка fileTextInFolder = String.Join("", symbolsList); //Записываем в строковый массив строки, полученные при разделении входящей строки по пробелу string[] words = fileTextInFolder.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); //Записываем в список массив строк var wordsList = new List <string>(words); //Циклом проходим по всем элементам списка for (int q = 0; q < wordsList.Count; q++) { //Если длина элемента списка меньше либо равна минимальной заданной длине if (wordsList[q].Length <= currentMinimumLength) { //Удаляем элемент списка wordsList.RemoveAt(q); //Обнуляем счетчик q = 0; } //Повторяем операцию для устранения необработанных элементов списка, //если находим, то удаляем элемент if (wordsList[q].Length <= currentMinimumLength) { //Удаляем элемент списка wordsList.RemoveAt(q); } } //Преобразуем список в строку, вставляя между элементами списка пробел fileTextInFolder = String.Join(" ", wordsList); //Комбинируем путь до папки и имя сохраняемого файла в один путь var file = Path.Combine(folderSaveName, folderSaveNameInFolder); //Записываем по указанному пути файл с редактированным текстом File.WriteAllText(file, fileTextInFolder); } //Выводим сообщения об окончании обработки папки DialogResult completed = MessageBox.Show("Process completed!", "Complet", MessageBoxButtons.OKCancel, MessageBoxIcon.Information); } } } } } }