Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 08.07.2007
Сообщений: 13
1

Переформатирование текста в табличные данные

06.01.2014, 06:42. Показов 1895. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Уважаемые форумчане!

Прошу помочь с решением такой задачи на C#.
На виндовс-приложении располагаются RichTextBox1 и RichTextBox2, а также button1.
В RichTextBox1 вводится текст из нескольких предложений. Например: "Папа утром побежал на работу. Вечером он пришёл домой усталый."

Затем после нажатия кнопки button1 весь введенный текст должен быть разбит на отдельные слова, которые вносятся в один столбец таблицы (последовательно сверху вниз). Результат такого разбиения и табличного представления должен отразиться в RichTextBox2.
При этом в соседнем столбце таблицы должны проставляться числа: как порядковые номера для всех полученных слов при разбиении текста.

Примерно так:

Папа |001
утром |002
побежал |003
на работу |004
Вечером |005
он |006
пришёл |007
домой |008
усталый |009
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.01.2014, 06:42
Ответы с готовыми решениями:

Табличные данные
Здравствуйте, подскажите; имеется таблица с числами в виде нескольких столбцов, по ним делает...

Вывести табличные данные на форму
Таблица на форме - никогда не видел, только слышал, вроде Грид называется, у меня нет такой У меня...

Как представить в коде табличные данные?
Есть ли возможность записать в код эту таблицу?

Как представить на форме табличные данные
Здравствуйте! Я пишу программу на WinForms (C#). Нужно, чтобы на форме отображалась таблица, в...

7
6280 / 3565 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
06.01.2014, 11:24 2
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private void button1_Click(object sender, EventArgs e)
{
    richTextBox2.Font = new System.Drawing.Font("Courier New", richTextBox2.Font.Size, FontStyle.Regular);
    Regex regex = new Regex(@"\b(\p{IsCyrillic}+)\b");
    IEnumerable<Match> matches = regex.Matches(richTextBox1.Text).Cast<Match>();
    string[] words = matches.Select(x => x.Groups[1].Value).ToArray();
    int maxLength = words.Max(x => x.Length) + 2;
    List<string> lines = new List<string>(words.Length);
    int index = 1;
    foreach (String word in words)
    {
        lines.Add(word.PadRight(maxLength) + "| " + (index++).ToString("000"));
    }
    richTextBox2.Lines = lines.ToArray();
}
1
0 / 0 / 0
Регистрация: 08.07.2007
Сообщений: 13
06.01.2014, 13:58  [ТС] 3
Уважаемый Петррр!

Спасибо, что откликнулись.
Я ввёл Ваш код в тело кнопки button1_Click, но что среда разработки сказала следующее:

Ошибка 1 Не удалось найти имя типа или пространства имен "Regex" (пропущена директива using или ссылка на сборку?)

Ошибка 2 Не удалось найти имя типа или пространства имен "Regex" (пропущена директива using или ссылка на сборку?)

Ошибка 3 Не удалось найти имя типа или пространства имен "Match" (пропущена директива using или ссылка на сборку?)

Ошибка 4 Не удалось найти имя типа или пространства имен "Match" (пропущена директива using или ссылка на сборку?)

Ошибка 5 Аргументы-типы для метода "System.Linq.Enumerable.Select<TSource,TResult>(System.Collections.Generic.IEnum erable<TSource>, System.Func<TSource,int,TResult>)" не должны определяться по использованию. Попытайтесь явно определить аргументы-типы.

Могли бы Вы указать, какого "юзинга" или сборки не хватает?
0
6280 / 3565 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
06.01.2014, 14:08 4
Киберсоф, ставите посередине Regex курсор, нажимаете Control + . появится выпадающее меня, с предложением добавить нужный using. Можно было также воспользоваться google(ом).
1
0 / 0 / 0
Регистрация: 08.07.2007
Сообщений: 13
06.01.2014, 20:49  [ТС] 5
Уважаемый Петррр!

Внёс using System.Text.RegularExpressions; и всё заработало!!

Большое спасибо!!!

Добавлено через 6 часов 39 минут
Уважаемый Петррр!

Подскажите, пожалуйста, что именно нужно изменить или добавить (к IsCyrillic), чтобы прога могла обрабатывать слова не только на кириллице, но ещё и на латинице?
0
6280 / 3565 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
06.01.2014, 21:05 6
C#
1
Regex regex = new Regex(@"\b([\p{IsCyrillic}\-]+|[a-zA-Z]+)\b");
1
0 / 0 / 0
Регистрация: 08.07.2007
Сообщений: 13
07.01.2014, 02:11  [ТС] 7
Большое спасибо!

А если в квадратные скобки добавить ещё и 0-9, то будет выделять и числовые слова?
0
6280 / 3565 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
07.01.2014, 07:20 8
Будет.
1
07.01.2014, 07:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.01.2014, 07:20
Помогаю со студенческими работами здесь

Как вытащить табличные данные из HTML страницы?
Вообщем такая проблема: надо с одного сайта скачать данные, которые там находятся в табличном...

Преобразование XML файла в табличные данные Excel
Добрый день. Прошу помощи, себе уже весь мозг сломал... :sorry: Существует некий сервис,...

Как обработать вводимые табличные данные методом интерполяции
Создать приложение в программе MS Exсel на Visual Basic for Application, выполняющее обработку...

Как вытащить табличные данные с сайта в ячейку Excel
Здравствуйте, помогите вытащить данные средней цены на квадратный метр с этой странички...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru