Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.04.2017, 10:47   #1
mother1
Новичок
Джуниор
 
Регистрация: 28.04.2017
Сообщений: 2
Печаль Регулярные выражения C#

Дана задача. Чтобы я не делала ничего не выходит. Помогите, крик души.
Требуется: осуществить обработку текстового файла, содержащего некоторый
многостраничный текст. Будем считать, что одна страница текста состоит из 60 строк.
Результат обработки – текстовый файл, содержащий предметный указатель
встречающихся в тексте слов. В предметном указателе перечисляются слова в
алфавитном порядке. Для каждого слова указывается количество его вхождений в текст
и номера страниц, на которых встречается это слово. При формировании предметного
указателя, слова, начинающиеся с разных букв алфавита разделяются на группы:
А
a.............................120: 1 2 3 4 5 6 7 8 9 10 11 12
and............................89: 1 2 3 6 8 9 12
apple...........................3: 7 9
B
bag.............................2: 11 12
big.............................7: 5 7 10
C
cake............................1: 3
circle..........................3: 8 9
. . . и т.д.
mother1 вне форума Ответить с цитированием
Старый 28.04.2017, 15:07   #2
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

Код:
using System;
using System.IO;
using System.Linq;
using System.Text;

namespace Test
{
    internal class Program
    {
        private static void Main( string[] args )
        {
            var text = File.ReadAllText( "War.txt", Encoding.Default );
            var allCountedWords = text.Replace( "\"", "" ).
                Replace( "\t", "" ).
                Replace( "—", "" ).
                Split( new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries ).
                Select( ( line, index ) => line.ToLower().Split( ' ' ).Where( item => !string.IsNullOrEmpty( item ) ).Select( item => new { Word = item, LineNumber = index } ) ).
                SelectMany( item => item ).
                OrderBy( item => item.Word ).
                GroupBy( item => item.Word ).
                Select( item =>
                        {
                            var group = item.ToList();

                            return new { Word = item.Key, CountEntries = group.Count, Pages = group.Select( values => values.LineNumber / 60 + 1 ).ToList() };
                        } ).
                ToList();
            foreach ( var grouping in allCountedWords.GroupBy( item => item.Word[ 0 ] ) )
            {
                Console.WriteLine( char.ToUpper( grouping.Key ) );
                foreach ( var word in grouping )
                {
                    Console.WriteLine( "{0}....Count: {1},Pages: {2}", word.Word, word.CountEntries, string.Join( ",", word.Pages.Select( item => item.ToString() ) ) );
                }
            }
            Console.ReadKey();
        }
    }
}
Сначала написал, потом понял, что надо было регулярками..
Не давай организму поблажки, каждый день тренируй его в шашки..

Последний раз редактировалось Скарам; 28.04.2017 в 15:10.
Скарам вне форума Ответить с цитированием
Старый 28.04.2017, 23:17   #3
mother1
Новичок
Джуниор
 
Регистрация: 28.04.2017
Сообщений: 2
По умолчанию

Скарам, спасибо, что откликнулись...

Последний раз редактировалось mother1; 28.04.2017 в 23:26.
mother1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регулярные выражения C# Дупло Помощь студентам 4 28.09.2011 17:19
регулярные выражения CodeNOT PHP 2 23.09.2011 12:11
Регулярные выражения ololo-schoolboy PHP 2 15.05.2011 13:03
регулярные выражения Dimarik PHP 10 09.12.2010 21:19
Регулярные выражения Dima_D Общие вопросы Delphi 0 11.08.2010 21:16