Exemplo n.º 1
0
        static void Main(string[] args)
        {
            const int   StringsInPage = 30;
            string      fp            = "2001SpaceOdyssey.txt";
            Concordance words         = new Concordance();

            try
            {
                using (StreamReader sr = new StreamReader(fp))
                {
                    int stringCounter = 0;
                    while (!sr.EndOfStream)
                    {
                        string s = sr.ReadLine();
                        stringCounter++;
                        string[] splittedString = s.Split(new char[] { '_', '–', '-', '(', ')', '+', '$', '/', '?', '"', ' ', '\'', ',', '.', ':', '!', ';', '\t', '@',
                                                                       '°', '{', '}', '<', '>', '^', '#', '*', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0' });
                        foreach (string ss in splittedString)
                        {
                            if (ss.Trim() != "")
                            {
                                words.Add(ss.ToLower(), (int)(stringCounter / StringsInPage) + 1);
                            }
                        }
                    }
                }
            }
            catch (FileNotFoundException ex)
            {
                Console.WriteLine(ex.Message);
                Console.ReadLine();
            }

            words.SaveReportToFile("report.txt");
        }
Exemplo n.º 2
0
        /// <summary>
        /// Метод парсит строку
        /// </summary>
        /// <param name="str">Строка</param>
        /// <returns>Список слов</returns>
        public Concordance Parsers(string[] str)
        {
            string      result;
            Concordance list   = new Concordance();
            var         newReg = new Regex("[a-zа-я]+-?[а-яa-z]*");

            for (int i = 0; i < str.Count(); i++)
            {
                result = str[i].ToLower();
                MatchCollection match = newReg.Matches(result);
                foreach (var mat in match)
                {
                    list.AddWord(mat.ToString(), i / 10 + 1);
                }
            }
            return(list);
        }
Exemplo n.º 3
0
        static void Main(string[] args)
        {
            var read = new Reader();
            var str  = read.Read();

            var         parser      = new Parser();
            Concordance concordance = parser.Parsers(str);

            Result        result = new Result();
            StringBuilder res    = result.Results(concordance);

            Console.WriteLine(res);

            Writer writer = new Writer();

            writer.Write(res);

            Console.ReadKey();
        }
Exemplo n.º 4
0
        /// <summary>
        /// Метод возвращает строку-результат
        /// </summary>
        /// <param name="concordance">Конкорданс</param>
        /// <returns>Строка-результат</returns>
        public StringBuilder Results(Concordance concordance)
        {
            var wordQuery =
                from word in concordance.GetWords()
                orderby word.GetWord()
                select word;

            var    resultBuilder = new StringBuilder();
            string letter2       = "";

            foreach (var word in wordQuery)
            {
                string letter = word.GetWord().Substring(0, 1).ToUpper();
                if (letter != letter2)
                {
                    resultBuilder.Append("\n" + letter + "\n");
                    letter2 = letter;
                }
                resultBuilder.Append(word.GetWord() + " " + word.GetCount() + ":" +
                                     word.GetPosition().Aggregate(" ", (current, temp) => current + (temp + " ")) + "\n");
            }
            return(resultBuilder);
        }