Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 1
Регистрация: 06.02.2018
Сообщений: 307
1

Файлы, подсчет количества слов в текстовом файле

11.12.2018, 18:22. Показов 1259. Ответов 6
Метки нет (Все метки)

Ниже код, нужно Добавить обработку ошибки , если допустим не хватает памяти, и чтобы из текстового файла бралось 1 слово и заносилось в переменную, а 2 слово заносилось еще в другую переменную.
C#
1
2
3
4
5
6
7
8
9
  int wordsCount = 0; //переменная в которой посдчет букв
            System.IO.StreamReader reader = new System.IO.StreamReader("my.txt");//чтение и запись из файла
            //reader считывает и возвращает следующий символ в численном представлении. Имеет перегруженную версию: Read(char[] array, int index, int count), где array - массив, куда считываются символы, index - индекс в массиве array, начиная с которого записываются считываемые символы, и count - максимальное количество считываемых символов
            string[] words = reader.ReadToEnd().Split('\n', ' ');//ReadToEnd()-считывает весь текст из файла
            //split разбивает строку на слова
            for (int i = 0; i < words.Length; i++)
                if (words[i].Length < 5)
                    wordsCount++;
            Console.WriteLine("Количество слов равно: " + wordsCount.ToString());
Добавлено через 1 час 52 минуты
как добавить обработку исключения о нехватке памяти ,допустим можно использовать только 500 мб а если используется больше 500 мб то сообщение об ошибке
C#
1
2
3
4
5
6
7
8
9
int wordsCount = 0; //переменная в которой посдчет букв
            System.IO.StreamReader reader = new System.IO.StreamReader("my.txt");//чтение и запись из файла
            //reader считывает и возвращает следующий символ в численном представлении. Имеет перегруженную версию: Read(char[] array, int index, int count), где array - массив, куда считываются символы, index - индекс в массиве array, начиная с которого записываются считываемые символы, и count - максимальное количество считываемых символов
            string[] words = reader.ReadToEnd().Split('\n', ' ');//ReadToEnd()-считывает весь текст из файла
            //split разбивает строку на слова
            for (int i = 0; i < words.Length; i++)
                if (words[i].Length < 5)
                    wordsCount++;
            Console.WriteLine("Количество слов равно: " + wordsCount.ToString());
0
Заказывайте контрольные, курсовые и дипломы здесь.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.12.2018, 18:22
Ответы с готовыми решениями:

Подсчет числа слов в текстовом файле
Доброго времени суток. подстажите пожалуйста как можно подсчитать слова в тексте? для подсчета...

Подсчет суммы чисел в текстовом файле
Допустим, содержание текстового файла: Иванов Иван 4391-21 Вариант 1 2 0 5 0 2 12 1

Подсчет количества слов
Подсчитать количество слов длиной не менее пяти символов в каждой строке файла. Полученный массив...

Подсчет количества элементов в файле
Задание Дано имя файла целых чисел. Найти количество элементов, содержащихся в данном файле. Если...

6
Модератор
9135 / 6418 / 1787
Регистрация: 21.04.2018
Сообщений: 19,111
Записей в блоге: 2
11.12.2018, 18:28 2
Цитата Сообщение от kalanda Посмотреть сообщение
Ниже код, нужно Добавить обработку ошибки , если допустим не хватает памяти, и чтобы из текстового файла бралось 1 слово и заносилось в переменную, а 2 слово заносилось еще в другую переменную.
В у Вас в коде несколько концептуальных ошибок.
  • Что такое слово? То есть должно быть определено какие символы являются разделителями слова или из каких символов может состоять слов (и следовательно все остальные являются разделителями). Допустим ".,;() и т.д. это всё символы разделители. А у Вас они определяться не будут.
  • Для подсчёта количества слов Вам не надо считывать весь файл в память, достаточно считать один символ.
0
0 / 0 / 1
Регистрация: 06.02.2018
Сообщений: 307
11.12.2018, 18:30  [ТС] 3
Можете исправить в программе?
0
Модератор
9135 / 6418 / 1787
Регистрация: 21.04.2018
Сообщений: 19,111
Записей в блоге: 2
11.12.2018, 18:38 4
Цитата Сообщение от kalanda Посмотреть сообщение
Можете исправить в программе?
Дайте список разделителей или правило по которому разделять слова. Допустим любая не буква и не цифра считается разделителем - подойдёт?
0
0 / 0 / 1
Регистрация: 06.02.2018
Сообщений: 307
11.12.2018, 18:40  [ТС] 5
да, пойдет
0
Модератор
9135 / 6418 / 1787
Регистрация: 21.04.2018
Сообщений: 19,111
Записей в блоге: 2
11.12.2018, 19:06 6
Цитата Сообщение от kalanda Посмотреть сообщение
да, пойдет
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
                string fileName = "Text.txt";
                var stream = new StreamReader(fileName);
                int countWord = 0;
                bool isWord = false;
                int nextChar;
                while ((nextChar = stream.Read()) >= 0)
                {
                    char currChar = (char)nextChar;
                    if (char.IsLetterOrDigit(currChar))
                        if (!isWord)
                        {
                            countWord++;
                            isWord = true;
                        }
                    else isWord = false;
                }
                Console.WriteLine(countWord);
0
0 / 0 / 1
Регистрация: 06.02.2018
Сообщений: 307
11.12.2018, 19:15  [ТС] 7
Спасибо, можете подсказать как сделать обработку исключения при нехватке памяти, я задаю обьем там 500 мб и если 500 мб задействовано то вывести сообщение что память закончилась? и еще вопрос как каждое слово заносить в новую переменную при чтении из файла?
я ввожу тектсовый файл все что угодно но программа пишет всреавно 0 в чем проблема?можете пример текста дать для заполнения?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.12.2018, 19:15

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Подсчет количества атрибутов в XML-файле
Делаю так,вывод &quot;0&quot; в чем проблема подскажите пожалуйста. int kolvo; ...

Поиск слов в текстовом файле по заданной директории
Нужно написать программу, которая проверяет наличие файла по введенному с клавиатуры адресу; если...

Русификация (перевод слов) столбцов в текстовом файле
Привет.В текстовом файле 4 столбца написанные на английском языке,под ними какие-то значения....

Создать словарь слов встречающихся в текстовом файле
Очень нужно. Получил задание - осуществить обработку текстового файла, содержащего некоторый...


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

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

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