Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 06.11.2013
Сообщений: 222
1

Правильное сохранение данных *rtf из RichTextBox

22.05.2015, 13:49. Показов 2841. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C#
1
2
string[] arr_text = tabControl1.TabPages[tabControl1.SelectedIndex].Controls[0].Text.Split('\n');
File.WriteAllLines(S.FileName, arr_text, Encoding.GetEncoding(1251));
как сделать что бы данная конструкция сохраняла в формате *.rtf с использованием массива, данный текст будет выводиться в RichTextBox

Добавлено через 10 часов 50 минут
C#
1
RichTextBox.SaveFile(openFileDialog1.FileName);
вы кроме этой конструкции можете еще что небуть посоветовать???

Добавлено через 1 час 23 минуты
ну или что то типо того
C#
1
 tabControl1.TabPages[tabControl1.SelectedIndex].Controls[0].(tb - типо RichTextBox).SaveFile
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.05.2015, 13:49
Ответы с готовыми решениями:

Сохранение из RichTextBox текст в формате rtf
Как сохранить в формате (*.rtf) string arr_text =...

Правильное сохранение данных
Всем доброго времени суток, столкнулся с проблемой в функции сохранения, данные она сохраняет, но...

RichTextBox RTF
я решил написать чат . И у меня проблемы с выводом сообщений. Русский текст в кракозябрах. И...

Работа с RTF в RichTextBox
Я читаю файл rtf в richtextbox. Файл содержит кириллицу. Русские буквы кодируются в rtf формате в...

14
6219 / 2467 / 725
Регистрация: 11.04.2015
Сообщений: 3,987
Записей в блоге: 43
22.05.2015, 15:03 2
Цитата Сообщение от Андрей_74 Посмотреть сообщение
вы кроме этой конструкции можете еще что небуть посоветовать???
Странный вопрос. Для сохранения текста в формате ртф существует именно этот метод. Для чего тебе другой? Название не нравится или... в чем проблема вообще?
0
0 / 0 / 0
Регистрация: 06.11.2013
Сообщений: 222
22.05.2015, 15:58  [ТС] 3
diadiavova,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
private void Save_Click(object sender, EventArgs e)
        {
            string a = tabControl1.TabPages[tabControl1.SelectedIndex].Controls[0].
            if (active_tab(tabControl1.SelectedIndex) == true)
            {
                if (a == "")
                {
                    MessageBox.Show("Не удалось сохранить пустой документ", "Уведомление", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
 
                else if (a != "")
                {
                    foreach (TabPage page in tabControl1.TabPages)
                    {
                        string q = page.Tag.ToString();
                        string[] arr_text = tabControl1.TabPages[tabControl1.SelectedIndex].Controls[0].Text.Split('\n');
                        File.WriteAllLines(q, arr_text, Encoding.GetEncoding(1251)); //Encoding.GetEncoding(1251)
                    }
                }
            }
Я не знаю, можно ли эту конструкцию:
C#
1
RichTextBox.SaveFile(openFileDialog1.FileName);
использовать с массивом:
C#
1
string[] arr_text = tabControl1.TabPages[tabControl1.SelectedIndex].Controls[0].Text.Split('\n');
Это все для того что бы с текущей вкладки TabPage есть (программно созданный RichTextBox) сохранялась информация в формате rtf, подробно: Создание программным путем компонент "RichTextBox" для "tabControl" вкладок
В каждой вкладке tabControl1 открытого документа храниться в свойстве "Tag" храниться путь документа который передает переменной "q"
0
6219 / 2467 / 725
Регистрация: 11.04.2015
Сообщений: 3,987
Записей в блоге: 43
22.05.2015, 16:12 4
Цитата Сообщение от Андрей_74 Посмотреть сообщение
использовать с массивом:
Ты знаешь, мне вот этот твой аргумент "Я работаю с массивом" в одной из прошлых твоих тем на эту же тему, напомнил один старый анекдот:
Приходит пациент к врачу и говорит
- Доктор, вы знаете, когда делаю так(тут он принимает странную позу), у меня болит вот здесь.
Доктор посмотрел на него и говорит:
- Так Вы не делайте так.
Скажи, пожалуйста, какого лешего ты прицепился к этому массиву? Просто напиши вот так и все
C#
1
tabControl1.TabPages[tabControl1.SelectedIndex].Controls[0].SaveFile(FileName)
При необходимости второй аргумент используй.
1
0 / 0 / 0
Регистрация: 06.11.2013
Сообщений: 222
22.05.2015, 16:17  [ТС] 5
Просто когда я загружаю документ формата rtf, 1 - Создается новая вкладка на tabControls1, 2 - Создается новый RichTextBox (программно) как экземпляр.
Допустим я изменяю текст данного документа и нужно сохранить изменение, тогда программа записывает в массив и с указанной кодировкой. Мне не понятно как сделать в моем данном случаи сохранение с
C#
1
RichTextBox.SaveFile(openFileDialog1.FileName);
Добавлено через 1 минуту
Просто можно было раньше сказать, т.к я "новичек" в C# !
0
6219 / 2467 / 725
Регистрация: 11.04.2015
Сообщений: 3,987
Записей в блоге: 43
22.05.2015, 16:18 6
Андрей_74, просто сделай как я написал и будет тебе счастье. Нет у ртф никаких кодировок. Все национальные алфавиты там кодируются специальными последовательностями. Открой хоть раз ртф-файл в блокноте, посмотри, что там внутри и успокойся )))
0
0 / 0 / 0
Регистрация: 06.11.2013
Сообщений: 222
22.05.2015, 16:20  [ТС] 7
diadiavova, Он не видит SaveFile
0
6219 / 2467 / 725
Регистрация: 11.04.2015
Сообщений: 3,987
Записей в блоге: 43
22.05.2015, 16:21 8
Цитата Сообщение от Андрей_74 Посмотреть сообщение
Просто можно было раньше сказать, т.к я "новичек" в C# !
А чем отличается то, что тебе говорили раньше, от того, что сказано сейчас?

Добавлено через 1 минуту
Цитата Сообщение от Андрей_74 Посмотреть сообщение
diadiavova, Он не видит SaveFile
Потому что надо приведение типов выполнить.
C#
1
(RichTextBox)(tabControl1.TabPages[tabControl1.SelectedIndex].Controls[0]).SaveFile(FileName);
0
0 / 0 / 0
Регистрация: 06.11.2013
Сообщений: 222
22.05.2015, 16:27  [ТС] 9
diadiavova,
Ошибка 2 "System.Windows.Forms.Control" не содержит определения для "SaveFile" и не был найден метод расширения "SaveFile", принимающий тип "System.Windows.Forms.Control" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку)

Добавлено через 3 минуты
Цитата Сообщение от diadiavova Посмотреть сообщение
Потому что надо приведение типов выполнить.
Код C#
1
C#
1
(RichTextBox)(tabControl1.TabPages[tabControl1.SelectedIndex].Controls[0]).SaveFile(FileName);
не помогло(

Добавлено через 1 минуту
diadiavova, за место filename у меня q который содержит
C#
1
string q = page.Tag.ToString();
0
6219 / 2467 / 725
Регистрация: 11.04.2015
Сообщений: 3,987
Записей в блоге: 43
22.05.2015, 16:28 10
Цитата Сообщение от Андрей_74 Посмотреть сообщение
за место filename у меня q который содержит
Там должно быть имя файла
0
0 / 0 / 0
Регистрация: 06.11.2013
Сообщений: 222
22.05.2015, 16:33  [ТС] 11
diadiavova, забыл дописать

Это из кнопки "Открытие документа"
просто я "O" написал что бы понятно было
C#
1
OpenFileDialog O = new OpenFileDialog();
а это для каждой вкладки свой путь

C#
1
2
3
4
foreach (TabPage pa in tabControl1.TabPages)
   {
       pa.Tag = O.FileName;
   }
0
6219 / 2467 / 725
Регистрация: 11.04.2015
Сообщений: 3,987
Записей в блоге: 43
22.05.2015, 16:38 12
Андрей_74, не надо решать все проблемы сразу. Разберись как сохраняется файл на примере, где у тебя будет гарантированно передаваться правильное имя. А потом уже разбирайся, почему этого имени не оказалось там где надо.
0
0 / 0 / 0
Регистрация: 06.11.2013
Сообщений: 222
22.05.2015, 17:12  [ТС] 13
diadiavova, сейчас попробую

Добавлено через 7 минут
C#
1
(RichTextBox)(tabControl1.TabPages[tabControl1.SelectedIndex].Controls[0]).SaveFile(FileName);
а это конструкция работает с экземпляром RichTextBox?, у меня же он объявляется тогда, когда я нажимаю кнопку "Открыть"

Добавлено через 24 минуты
diadiavova,
C#
1
(RichTextBox)(tabControl1.TabPages[tabControl1.SelectedIndex].Controls[0]).SaveFile(openFileDialog1.FileName);
ну вот я создал компонент openFileDialog1, переписал код под него и все равно та же ошибка
0
6219 / 2467 / 725
Регистрация: 11.04.2015
Сообщений: 3,987
Записей в блоге: 43
22.05.2015, 19:16 14
Лучший ответ Сообщение было отмечено Андрей_74 как решение

Решение

Цитата Сообщение от Андрей_74 Посмотреть сообщение
ну вот я создал компонент openFileDialog1, переписал код под него и все равно та же ошибка
Да, надо просто взять выражение, возвращающее ричтекстбокс в скобки.
C#
1
((RichTextBox)(tabControl1.TabPages[tabControl1.SelectedIndex].Controls[0])).SaveFile(FileName)
Или можно так
C#
1
(tabControl1.TabPages[tabControl1.SelectedIndex].Controls[0]  as RichTextBox).SaveFile(FileName)
Добавлено через 4 минуты
Вообще, надо сказать, что все эти твои проблемы проистекают из того, что ты все лепишь в один класс. На самом деле, если тебе надо, чтобы у тебя была вкладка с ричтекстбоксом, ну создай такую вкладку как отдельный класс. Определи в ней методы для работы и потом, получишь такую вкладку и вызывай нужные методы. Можно и табконтрол свой сделать, чтобы из него можно было получать вкладку нужного типа. и так далее. А так, если все лепить в одной форме, то чем дальше, тем больше будет от этого проблем.
1
0 / 0 / 0
Регистрация: 06.11.2013
Сообщений: 222
22.05.2015, 19:23  [ТС] 15
diadiavova, во, спасибо большое), попробую все построить через классы.
0
22.05.2015, 19:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.05.2015, 19:23
Помогаю со студенческими работами здесь

Загрузка RTF в RichTextBox
Испльзую такую запись для загрузки файла в richtextbox ...

Проблема с RichTextBox->Rtf
Всем привет! Пишу на Windows Forms (C++, естествено). Framework 2.0 Сортировка пузырьком Нужно...

Свойство Rtf у richTextBox
Что нужно подключить чтобы использовать это свойство? Всем заранее спасибо за ответы

Добавить RTF в RichTextBox
Можно ли как-то добавить текст в формате RTF в richTextBox? Нашёл только метод LoadFile, но он...


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

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