1 / 2 / 0
Регистрация: 30.04.2019
Сообщений: 179
1

Удаление определенных слов из текста

14.09.2019, 13:53. Показов 3654. Ответов 46
Метки нет (Все метки)

У меня есть два файла ".txt" в одном хранится текст, а в другом слова, которые запрещено использовать в тексте. Помогите написать софт, который будет удалять эти слова.
Я пробовал реализовать все это таким кодом.
C#
1
2
3
4
foreach(var word in words)
{
text = text.Replace(word,"");
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.09.2019, 13:53
Ответы с готовыми решениями:

Удаление слов из текста
Дан текст. Из него нужно удалить слова определенные слова. Как реализовать сей код?

Подсчитать количество определенных слов
Всем доброго времени суток! Есть текстовый файл в котором 10000 строк, все строки имеют формат:...

Удаление из файла определенных строк
Доброго времени суток, нужна помощь! Задача такова: есть файл, нужно если строка i=0, i+=4 равна...

Чтение определенных слов и запись в переменные
System IO считывание определенных слов и запись в переменные. у меня есть клас под названием Human...

46
Модератор
Эксперт .NET
10422 / 7398 / 2030
Регистрация: 21.04.2018
Сообщений: 22,324
Записей в блоге: 2
14.09.2019, 14:09 2
Цитата Сообщение от Illson Посмотреть сообщение
Я пробовал реализовать все это таким кодом.
Вроде должно работать.
Что не так?
0
1 / 2 / 0
Регистрация: 30.04.2019
Сообщений: 179
14.09.2019, 14:14  [ТС] 3
не удается преобразовать одно в другое
Миниатюры
Удаление определенных слов из текста  
0
Модератор
Эксперт .NET
10422 / 7398 / 2030
Регистрация: 21.04.2018
Сообщений: 22,324
Записей в блоге: 2
14.09.2019, 14:30 4
Цитата Сообщение от Illson Посмотреть сообщение
не удается преобразовать одно в другое
Покажите код где возникает ошибка
0
1 / 2 / 0
Регистрация: 30.04.2019
Сообщений: 179
14.09.2019, 14:42  [ТС] 5
111
Миниатюры
Удаление определенных слов из текста  
0
Модератор
Эксперт .NET
10422 / 7398 / 2030
Регистрация: 21.04.2018
Сообщений: 22,324
Записей в блоге: 2
14.09.2019, 14:57 6
Illson, код надо выкладывать текстом, а не картинкой!

Какой интерес перепечатывать вашу картинку?
C#
1
2
3
4
5
6
string text = File.ReadAllText("text.txt"); // Чтение всего файла
 
foreach(var word in words)
     text = text.Replace(word,"");
 
File.WriteAllText("text.txt", text); // Запись всего файла
2
1 / 2 / 0
Регистрация: 30.04.2019
Сообщений: 179
14.09.2019, 15:09  [ТС] 7
мне стыдно за этот поступок. Код прекрасен, за исключением того, что он не может преобразовать из string в char

C#
1
2
3
4
5
6
7
8
  
            string text = File.ReadAllText("@C:\\Users\\Illson\\Desktop\\BAS\\text.txt"); // Чтение всего файла
            string words = File.ReadAllText(@"C:\\Users\\Illson\\Desktop\\BAS\\white_list.txt");
 
            foreach (var word in words)
                text = text.Replace(word, "");
 
            File.WriteAllText("@C:\\Users\\Illson\\Desktop\\BAS\\text.txt", text);
Миниатюры
Удаление определенных слов из текста  
0
64 / 45 / 20
Регистрация: 04.12.2018
Сообщений: 334
14.09.2019, 15:26 8
Проблема решена?
0
1 / 2 / 0
Регистрация: 30.04.2019
Сообщений: 179
14.09.2019, 15:28  [ТС] 9
я попробовал .tostring(), не получилось. В данный момент проблема не решена
0
Модератор
Эксперт .NET
10422 / 7398 / 2030
Регистрация: 21.04.2018
Сообщений: 22,324
Записей в блоге: 2
14.09.2019, 17:08 10
Illson, потому что words должен быть последовательностью string, а не одним string.
У вас же на предыдущем скрине words задавался по другому!
Если вам его надо получить из файла, то надо знать формат файла.
Допустим, если по одному слову в каждой строке файла, то надо использовать метод ReadAllLines
string[] words = File.ReadAllLines(@"C:\\Users\\Illson\\Desktop\\BAS\\white_l ist.txt");

Добавлено через 1 час 26 минут
C#
1
2
3
4
5
6
7
8
9
10
  
            string text = File.ReadAllText("@C:\\Users\\Illson\\Desktop\\BAS\\text.txt"); // Чтение всего файла
 
            // Чтение всех СТРОК файла. Каждая строка - отдельный элемент возвращаемого массива.
            string[] words = File.ReadAllLines(@"C:\\Users\\Illson\\Desktop\\BAS\\white_list.txt");
 
            foreach (string word in words)
                text = text.Replace(word, "");
 
            File.WriteAllText("@C:\\Users\\Illson\\Desktop\\BAS\\text.txt", text);
1
64 / 45 / 20
Регистрация: 04.12.2018
Сообщений: 334
14.09.2019, 17:58 11
Illson, Думаю могу объяснить почему не выходит
C#
1
2
3
4
5
6
7
string text = File.ReadAllText("@C:\\Users\\Illson\\Desktop\\BAS\\text.txt"); // Чтение всего файла
            string words = File.ReadAllText(@"C:\\Users\\Illson\\Desktop\\BAS\\white_list.txt");
 
            foreach (var word in words) //words это обычная строка,необходим массив строк!
                text = text.Replace(word, "");//пытаетесь заменить символ на строку (" ") если хотите что бы не было ошибок достаточно сделать text = text.Replace(word, ''), но тогда будет заменяться не слово а символ.
 
            File.WriteAllText("@C:\\Users\\Illson\\Desktop\\BAS\\text.txt", text);
C#
1
2
3
4
5
6
7
8
9
10
11
12
int num = 0;
StreamReader file= new StreamReader("text.txt");
while(file.ReadLine() != null)
            {
                num++;
            }
            string [] text= new string[num];
           for(int i =0;i<num;i++)
            {
                text[i] = file.ReadLine();
            }
//Вот так считывайте данные с файла. Индекс массива хранит соответствующею строку. Потом нужно разделить этот массив на подстроки(слова) с помощью метода Split().
0
1 / 2 / 0
Регистрация: 30.04.2019
Сообщений: 179
14.09.2019, 18:14  [ТС] 12
Я почти уверен, что эта ошибка появляется изза того, что у меня текст находится на разных строках в файле. Я поменял первую строку

C#
1
2
  
           string[] text = File.ReadAllLines("@C:\\Users\\Illson\\Desktop\\BAS\\text.txt"); // Чтение всего файла
на эту и студия начинается выдавать ошибку на скриншоте 2.
C#
1
2
3
4
5
6
7
8
9
10
  
           string[] text = File.ReadAllLines("@C:\\Users\\Illson\\Desktop\\BAS\\text.txt"); // Чтение всего файла
 
            // Чтение всех СТРОК файла. Каждая строка - отдельный элемент возвращаемого массива.
            string[] words = File.ReadAllLines(@"C:\\Users\\Illson\\Desktop\\BAS\\white_list.txt");
 
            foreach (string word in words)
                text = text.Replace(word, "");
 
            File.WriteAllText("@C:\\Users\\Illson\\Desktop\\BAS\\text.txt", text);
Миниатюры
Удаление определенных слов из текста   Удаление определенных слов из текста  
0
64 / 45 / 20
Регистрация: 04.12.2018
Сообщений: 334
14.09.2019, 18:57 13
Illson, замените @C:\\ на @C:\ и просто создайте его на диске без дополнительных директорий и пропишите : "C:\\Text.txt" или "@C:\Text.txt"
0
1 / 2 / 0
Регистрация: 30.04.2019
Сообщений: 179
14.09.2019, 19:01  [ТС] 14
Не помогло
Миниатюры
Удаление определенных слов из текста  
0
1 / 2 / 0
Регистрация: 30.04.2019
Сообщений: 179
14.09.2019, 19:14  [ТС] 15
Я прочитал про "split" но не понял, как это реализовать
0
Модератор
Эксперт .NET
10422 / 7398 / 2030
Регистрация: 21.04.2018
Сообщений: 22,324
Записей в блоге: 2
14.09.2019, 19:21 16
Цитата Сообщение от Illson Посмотреть сообщение
на эту и студия начинается выдавать ошибку на скриншоте 2.
Я же вам уже показал!
Посмотрите внимательно пост#10.

Для text надо использовать метод ReadAllText
Для words, если в каждой строке файла по одному слову и больше ничего - метод ReadAllLines.

И типы у них разные!
string text и string[] words

Будьте внимательнее.
Студия же не обладает телепатией чтобы понять что вы от неё хотите.

Добавлено через 1 минуту
Illson, покажите пример содержимого файла white_list.txt.
Не зная его формата - невозможно точно сказать как правильно разбить его содержимое на отдельные слова.
0
1 / 2 / 0
Регистрация: 30.04.2019
Сообщений: 179
14.09.2019, 19:29  [ТС] 17
файл text.text примерно так же выглядит, за отличием того, что в нем этих строк 2 тысячи+. Подразумевается то, что на каждой новой строке будет слово - которое нужно будет удалить из text.txt
Миниатюры
Удаление определенных слов из текста  
0
Модератор
Эксперт .NET
10422 / 7398 / 2030
Регистрация: 21.04.2018
Сообщений: 22,324
Записей в блоге: 2
14.09.2019, 19:31 18
Цитата Сообщение от Illson Посмотреть сообщение
файл text.text примерно так же выглядит, за отличием того, что в нем этих строк 2 тысячи+
Тогда вариант из поста#10 должен правильно работать.
0
Модератор
Эксперт .NET
10422 / 7398 / 2030
Регистрация: 21.04.2018
Сообщений: 22,324
Записей в блоге: 2
14.09.2019, 19:33 19
Если файлы очень большие и время обработки получается значительным, то можно сильно ускорить.
Но это и значительно усложнит код.
0
1 / 2 / 0
Регистрация: 30.04.2019
Сообщений: 179
14.09.2019, 19:46  [ТС] 20
Я сижу и не понимаю, что происходит. Файл сохранен в формате utf8
Миниатюры
Удаление определенных слов из текста  
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.09.2019, 19:46

Удаление нескольких определенных символов из строки
Наверное детский вопрос, но все же: есть строка из неё надо удалить все символы препенания (точки,...

Нужно узнать количество определенных слов из файла
Допустим, есть .txt документ с текстом: &quot;У меня есть собака. Моя собака самая лучшая.&quot; Нужно...

Вывод текста без определенных знаков
Есть код: if (geet.Contains(&quot;_-_&quot;)) { ...

Удаление определенных строк из текста
Помогите, после ввода текста в консоли, нужно удалить часть текста clrscr удаляет весь текст, а...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.