Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.86/29: Рейтинг темы: голосов - 29, средняя оценка - 4.86
1 / 2 / 0
Регистрация: 30.04.2019
Сообщений: 261

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

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

Студворк — интернет-сервис помощи студентам
У меня есть два файла ".txt" в одном хранится текст, а в другом слова, которые запрещено использовать в тексте. Помогите написать софт, который будет удалять эти слова.
Я пробовал реализовать все это таким кодом.
C#
1
2
3
4
foreach(var word in words)
{
text = text.Replace(word,"");
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.09.2019, 13:53
Ответы с готовыми решениями:

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

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

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

46
64 / 45 / 20
Регистрация: 04.12.2018
Сообщений: 334
14.09.2019, 19:47
Студворк — интернет-сервис помощи студентам
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();
            }
//Данный фрагмент подходит для считывания данных
Illson, могу показать как работает метод сплит но при его использовании желательно(если есть нулевые ссылки) использовать перечисление,которое их удаляет(нулевые ссылки)
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,173
Записей в блоге: 2
14.09.2019, 19:57
Цитата Сообщение от Illson Посмотреть сообщение
Я сижу и не понимаю, что происходит. Файл сохранен в формате utf8
Блин!
Выкладывайте код! Пишите текст ошибки!
Надоело уже ваши мелкие картинки разглядывать!
На смарте их почти не видно - лупу что ли искать?!

@ - должна быть перед кавычками.
C#
1
string[] text = File.ReadAllLines(@"C:\\Users\\Illson\\Desktop\\BAS\\text.txt"); // Чтение всего файла
Добавлено через 1 минуту
Я пишу со смарта прямо здесь в редакторе сообщений - могут быть мелкие ошибки.
Чуток хоть сами за синтаксисом следите.
0
64 / 45 / 20
Регистрация: 04.12.2018
Сообщений: 334
14.09.2019, 19:59
Illson, Есть текстовый файл там есть слова,предложения типо:
dwefrg
fergt



wesg wtgthret rgtrh
grt

Нужно закинуть это все в массив,потом дать возможность ввести юзером слово,которое нужно удалить и записать все в другой текстовый файл ? Это суть задания?
0
 Аватар для jester
352 / 247 / 76
Регистрация: 18.03.2016
Сообщений: 979
14.09.2019, 20:01
Illson, у тебя ошибки были потому что ты постоянно менял тип string на string[], но это не одно и то же. Строка содержит методы для работы со строкой, массив содержит методы для работы с массивом. Что бы обращаться к строкам в массиве нужно использовать индексы:
C#
1
2
3
string[] text = File.ReadAllLines("@C:\\Users\\Illson\\Desktop\\BAS\\text.txt");
text - массив
text[5] - строка в массиве
наводи курсор на переменную и смотри какой у неё тип

Элд Хасп, а если слово из words будет частью другого слова, то эта часть удалится?
чай
чайник -> ник
0
1 / 2 / 0
Регистрация: 30.04.2019
Сообщений: 261
14.09.2019, 20:13  [ТС]
по сути да

Добавлено через 4 минуты
после того, как я превратил стрим в массив, строка с кодом
C#
1
 text = text.Replace(word, "");
начала выдавать ошибку о том, что строка ""string[]" не содержит определения "replace""
0
64 / 45 / 20
Регистрация: 04.12.2018
Сообщений: 334
14.09.2019, 20:23
Illson, Оно ? Я за 9 минут это сделал
Миниатюры
Удаление определенных слов из текста  
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,173
Записей в блоге: 2
14.09.2019, 20:30
Цитата Сообщение от Illson Посмотреть сообщение
после того, как я превратил стрим в массив, строка с кодом
Вы превратили файл в массив строк!
А так не должно быть!
text - это просто строка!
words - это массив строк!
Вы просто скопируйте код из поста #10.
Вы его перепечатываете и делаете ошибки!
Просто копипаста и всё!

Добавлено через 1 минуту
Цитата Сообщение от jester Посмотреть сообщение
если слово из words будет частью другого слова, то эта часть удалится?
чай
чайник -> ник
Да.
Я не знаю насколько это нужно TC.
Такая реализация была в начале темы - значит TC такой способ устраивает.
0
1 / 2 / 0
Регистрация: 30.04.2019
Сообщений: 261
14.09.2019, 20:32  [ТС]
да оно, можно пожалуйста исходник
0
64 / 45 / 20
Регистрация: 04.12.2018
Сообщений: 334
14.09.2019, 20:34
Цитата Сообщение от Элд Хасп Посмотреть сообщение
если слово из words будет частью другого слова, то эта часть удалится?
чай
чайник -> ник
Нет конечно, это слово не удалиться, какой смысл от такой программы ?
Удалиться в том случае если и то и то слово имеют одну длину и последовательности их символов совпадают, но здесь достаточно последовательности совпадений, нет нужды еще определять их длину. Я программу эту сделал и она корректно работает. Там всего ничего 10 строчек
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,173
Записей в блоге: 2
14.09.2019, 20:37
Цитата Сообщение от Illson Посмотреть сообщение
Я почти уверен, что эта ошибка появляется изза....
Вот код с комментарием к каждой строчке кода.
Просто СКОПИРУЙТЕ его себе в решение

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    // Чтение всего файла в ОДНУ строку
    string text = File.ReadAllText(@"C:\\Users\\Illson\\Desktop\\BAS\\text.txt");
 
    // Чтение всех СТРОК файла в МАССИВ строк. 
    // Каждая строка файла - отдельный элемент создаваемого массива.
    string[] words = File.ReadAllLines(@"C:\\Users\\Illson\\Desktop\\BAS\\white_list.txt");
 
    // Цикл по всем элементам МАССИВА words
    foreach (string word in words)
        // Удаление из СТРОКИ text всех вхождений 
        // очередного слова
        text = text.Replace(word, "");
 
    // Создание файла, запись в него ОДНОЙ строки, сохранение и закрытие файла.
    File.WriteAllText(@"\\Users\\Illson\\Desktop\\BAS\\text.txt", text);
0
64 / 45 / 20
Регистрация: 04.12.2018
Сообщений: 334
14.09.2019, 20:38
У меня хорошо построенная программа с максимальной оптимизацией кода, хоть и маленькая программа
0
1 / 2 / 0
Регистрация: 30.04.2019
Сообщений: 261
14.09.2019, 20:45  [ТС]
после запуска программы на строке 15 вылезает ошибка "System.IO.IOException: "Не найден сетевой путь.
""
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,173
Записей в блоге: 2
14.09.2019, 20:46
Макрой, использование Split() для выделения слов из текста некорректно:
  • Неизвестно какие могут быть разделители слов. Список разделителей слов должен оговариваться в задании. Могут быть разные условия. Часто бывает и такое - разделитель любой символ не буква. И тогда делить на слова придётся кастомным методом с использование Char.IsLetter
  • Split теряет информацию о разделителях. И фактически все разделители из декста удаляются, а потом на их место ставится произвольный. Такое подходит далеко не для всех задач.
0
64 / 45 / 20
Регистрация: 04.12.2018
Сообщений: 334
14.09.2019, 20:47
Illson, подключи директиву using System.IO если не подключил,либо я могу показать свой вариант
0
 Аватар для jester
352 / 247 / 76
Регистрация: 18.03.2016
Сообщений: 979
14.09.2019, 20:47
Макрой, какой ты крутой. за 9 минут сделал, а за 8 сможешь?
хорошо что ты не скинул и никто не увидит насколько она корректно работает)
а если после слова которое нужно удалить точка или ещё какой нибудь знак?
не будем его удалять тогда, ну его.

Illson, несколько раз тебе скидывали решение. Попробуй сам считать данные из файла и разберись как они будут храниться в памяти у тебя. Потом всё остальное.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,173
Записей в блоге: 2
14.09.2019, 20:47
Цитата Сообщение от Illson Посмотреть сообщение
"System.IO.IOException: "Не найден сетевой путь.
Значит путь задан не верно.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,173
Записей в блоге: 2
14.09.2019, 20:49
Illson, оба свои файла сожми в архив и выложи.
Я уже добрался до компа - выложу тебе готовое решение полностью.
Останется только запустить.
0
64 / 45 / 20
Регистрация: 04.12.2018
Сообщений: 334
14.09.2019, 20:51
Цитата Сообщение от jester Посмотреть сообщение
а если после слова которое нужно удалить точка или ещё какой нибудь знак?
не будем его удалять тогда, ну его.
придется разделять и на запятые, точки,восклицательный и вопросительный знаки
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,173
Записей в блоге: 2
14.09.2019, 20:51
Illson, и напиши - задание учебное для демонстрации?
Больших файлов не может быть? Сотни мегабайт для text и десятки тысяч слов для words?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,173
Записей в блоге: 2
14.09.2019, 20:52
Цитата Сообщение от Макрой Посмотреть сообщение
придется разделять и на запятые, точки,восклицательный и вопросительный знаки
Разделить не проблема, а как потом их восстанавливать?
Все пробелами заменить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.09.2019, 20:52

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru