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

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

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

Студворк — интернет-сервис помощи студентам
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)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.05.2015, 13:49
Ответы с готовыми решениями:

Сохранение из RichTextBox текст в формате rtf
Как сохранить в формате (*.rtf) string arr_text = tabControl1.TabPages.Controls.Text.Split('\n'); File.WriteAllLines(S.FileName,...

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

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

14
 Аватар для diadiavova
7259 / 2606 / 744
Регистрация: 11.04.2015
Сообщений: 4,150
Записей в блоге: 43
22.05.2015, 15:03
Цитата Сообщение от Андрей_74 Посмотреть сообщение
вы кроме этой конструкции можете еще что небуть посоветовать???
Странный вопрос. Для сохранения текста в формате ртф существует именно этот метод. Для чего тебе другой? Название не нравится или... в чем проблема вообще?
0
 Аватар для Андрей_74
0 / 0 / 0
Регистрация: 06.11.2013
Сообщений: 224
22.05.2015, 15:58  [ТС]
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
 Аватар для diadiavova
7259 / 2606 / 744
Регистрация: 11.04.2015
Сообщений: 4,150
Записей в блоге: 43
22.05.2015, 16:12
Цитата Сообщение от Андрей_74 Посмотреть сообщение
использовать с массивом:
Ты знаешь, мне вот этот твой аргумент "Я работаю с массивом" в одной из прошлых твоих тем на эту же тему, напомнил один старый анекдот:
Приходит пациент к врачу и говорит
- Доктор, вы знаете, когда делаю так(тут он принимает странную позу), у меня болит вот здесь.
Доктор посмотрел на него и говорит:
- Так Вы не делайте так.
Скажи, пожалуйста, какого лешего ты прицепился к этому массиву? Просто напиши вот так и все
C#
1
tabControl1.TabPages[tabControl1.SelectedIndex].Controls[0].SaveFile(FileName)
При необходимости второй аргумент используй.
1
 Аватар для Андрей_74
0 / 0 / 0
Регистрация: 06.11.2013
Сообщений: 224
22.05.2015, 16:17  [ТС]
Просто когда я загружаю документ формата rtf, 1 - Создается новая вкладка на tabControls1, 2 - Создается новый RichTextBox (программно) как экземпляр.
Допустим я изменяю текст данного документа и нужно сохранить изменение, тогда программа записывает в массив и с указанной кодировкой. Мне не понятно как сделать в моем данном случаи сохранение с
C#
1
RichTextBox.SaveFile(openFileDialog1.FileName);
Добавлено через 1 минуту
Просто можно было раньше сказать, т.к я "новичек" в C# !
0
 Аватар для diadiavova
7259 / 2606 / 744
Регистрация: 11.04.2015
Сообщений: 4,150
Записей в блоге: 43
22.05.2015, 16:18
Андрей_74, просто сделай как я написал и будет тебе счастье. Нет у ртф никаких кодировок. Все национальные алфавиты там кодируются специальными последовательностями. Открой хоть раз ртф-файл в блокноте, посмотри, что там внутри и успокойся )))
0
 Аватар для Андрей_74
0 / 0 / 0
Регистрация: 06.11.2013
Сообщений: 224
22.05.2015, 16:20  [ТС]
diadiavova, Он не видит SaveFile
0
 Аватар для diadiavova
7259 / 2606 / 744
Регистрация: 11.04.2015
Сообщений: 4,150
Записей в блоге: 43
22.05.2015, 16:21
Цитата Сообщение от Андрей_74 Посмотреть сообщение
Просто можно было раньше сказать, т.к я "новичек" в C# !
А чем отличается то, что тебе говорили раньше, от того, что сказано сейчас?

Добавлено через 1 минуту
Цитата Сообщение от Андрей_74 Посмотреть сообщение
diadiavova, Он не видит SaveFile
Потому что надо приведение типов выполнить.
C#
1
(RichTextBox)(tabControl1.TabPages[tabControl1.SelectedIndex].Controls[0]).SaveFile(FileName);
0
 Аватар для Андрей_74
0 / 0 / 0
Регистрация: 06.11.2013
Сообщений: 224
22.05.2015, 16:27  [ТС]
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
 Аватар для diadiavova
7259 / 2606 / 744
Регистрация: 11.04.2015
Сообщений: 4,150
Записей в блоге: 43
22.05.2015, 16:28
Цитата Сообщение от Андрей_74 Посмотреть сообщение
за место filename у меня q который содержит
Там должно быть имя файла
0
 Аватар для Андрей_74
0 / 0 / 0
Регистрация: 06.11.2013
Сообщений: 224
22.05.2015, 16:33  [ТС]
diadiavova, забыл дописать

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

C#
1
2
3
4
foreach (TabPage pa in tabControl1.TabPages)
   {
       pa.Tag = O.FileName;
   }
0
 Аватар для diadiavova
7259 / 2606 / 744
Регистрация: 11.04.2015
Сообщений: 4,150
Записей в блоге: 43
22.05.2015, 16:38
Андрей_74, не надо решать все проблемы сразу. Разберись как сохраняется файл на примере, где у тебя будет гарантированно передаваться правильное имя. А потом уже разбирайся, почему этого имени не оказалось там где надо.
0
 Аватар для Андрей_74
0 / 0 / 0
Регистрация: 06.11.2013
Сообщений: 224
22.05.2015, 17:12  [ТС]
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
 Аватар для diadiavova
7259 / 2606 / 744
Регистрация: 11.04.2015
Сообщений: 4,150
Записей в блоге: 43
22.05.2015, 19:16
Лучший ответ Сообщение было отмечено Андрей_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
 Аватар для Андрей_74
0 / 0 / 0
Регистрация: 06.11.2013
Сообщений: 224
22.05.2015, 19:23  [ТС]
diadiavova, во, спасибо большое), попробую все построить через классы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.05.2015, 19:23
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru