Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
 Аватар для timsc1
15 / 15 / 2
Регистрация: 27.11.2011
Сообщений: 714

Как сохранить три RichTextBox в один RTF файл?

06.03.2018, 15:37. Показов 4043. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!!! Такой вопрос:
На форме есть три ричтекстбокса. Как их все сохранить в один RTF файл. Делаю стандартными методами, последний перезаписывает файл. Спасибо!!!
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.03.2018, 15:37
Ответы с готовыми решениями:

Как можно сохранить текст из RichTextBox в файл с раширением rtf?
подскажите плиз: как можно сохранить текст из RichTextBox в файл с раширением rtf, что то у меня нифига не получается...

Как сохранить текст из нескольких richTextBox в один файл
Привет всем. По щелчку кнопки нужно сохранить текст из 2-ух richTextBox в один файл, но текст из второго затирает текст первого. Прошу...

Как сохранить текст из RichTextBox.RTF в БД Access
Проблема в том, что RichTextBox кодирует русские буквы, например буква ы кодируется в \'fb, при этом методы Insert и Update выдают ошибку...

31
Лень — мое второе и
 Аватар для Orlangur
3228 / 2416 / 687
Регистрация: 28.11.2014
Сообщений: 3,601
Записей в блоге: 3
06.03.2018, 15:43
timsc1, покажите как делаете
0
 Аватар для timsc1
15 / 15 / 2
Регистрация: 27.11.2011
Сообщений: 714
06.03.2018, 15:48  [ТС]
Orlangur1991,
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 Dim SFD As New SaveFileDialog
        SFD.Filter = "RichTextFormat (*.rtf)|*.rtf|Текстовые файлы (*.txt)|*.txt"
        If SFD.ShowDialog = DialogResult.OK And SFD.FilterIndex = 1 Then 'сохранить в формате .rtf
            Dim SavedName = SFD.FileName
            Try
                rt1.SaveFile(SavedName, RichTextBoxStreamType.RichText)
                rt2.SaveFile(SavedName, RichTextBoxStreamType.RichText)
                rt3.SaveFile(SavedName, RichTextBoxStreamType.RichText)
            Catch Exc As Exception
                MsgBox(Exc.Message)
            End Try
        ElseIf SFD.FilterIndex = 2 Then 'сохранить в формате .txt
            Dim SavedName = SFD.FileName
            Try
                System.IO.File.WriteAllText(SavedName, rt1.Text, System.Text.Encoding.Default)
                System.IO.File.AppendAllText(SavedName, rt2.Text, System.Text.Encoding.Default)
                System.IO.File.AppendAllText(SavedName, rt3.Text, System.Text.Encoding.Default)
 
            Catch Exc As Exception
                MsgBox(Exc.Message)
            End Try
        End If
код взял на этом сайте...
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18283 / 14206 / 5368
Регистрация: 17.03.2014
Сообщений: 28,884
Записей в блоге: 1
06.03.2018, 16:32
Лучший ответ Сообщение было отмечено Yury Komar как решение

Решение

timsc1, попробуй собрать весь текст в один RichTextBox и сохранять его. Примерный код
VB.NET
1
2
rt1.Rtf = rt1.Rtf & rt2.Rtf & rt3.Rtf
rt1.SaveFile(SavedName, RichTextBoxStreamType.RichText)
Оригинальный Rtf можно сохранить в переменную или использовать временный невидимый RichTextBox
1
Модератор
Эксперт .NET
 Аватар для Yury Komar
4357 / 3427 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
07.03.2018, 05:38
timsc1, данный RTF файл в дальнейшем планируете загружать в программу свою для редактирования? Или же нет?
0
 Аватар для timsc1
15 / 15 / 2
Регистрация: 27.11.2011
Сообщений: 714
07.03.2018, 09:37  [ТС]
Yury Komar, нет, просто сохранить, чтобы потом открыть для просмотра в вордпаде...
0
 Аватар для Nachrichter
649 / 601 / 92
Регистрация: 19.03.2012
Сообщений: 1,128
13.03.2018, 19:09
timsc1, попробуйте так:
VB.NET
1
2
3
Dim RTB As New RichTextBox
RTB.Rtf = rt1.Rtf & rt2.Rtf & rt3.Rtf
RTB.SaveFile(SavedName, RichTextBoxStreamType.RichText)
1
Модератор
Эксперт .NET
 Аватар для Yury Komar
4357 / 3427 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
14.03.2018, 08:05
плюс после сохранения надо бы
VB.NET
1
RTB.Dispose
2
 Аватар для timsc1
15 / 15 / 2
Регистрация: 27.11.2011
Сообщений: 714
16.03.2018, 08:31  [ТС]
Nachrichter, Ваш вариант почему-то не работает, сохраняет только 1-й РТБ. Ваш код немного переделал:
VB.NET
1
 RTB.AppendText(rt1.Text & vbCrLf & rt2.Text & vbCrLf & rt3.Text)
теперь сохраняет как надо...
Nachrichter, Yury Komar, Спасибо за помощь!!!
1
1 / 1 / 0
Регистрация: 21.11.2018
Сообщений: 82
27.09.2019, 16:00
Yury Komar, А вы не могли бы подсказать по dispose, у меня есть rtb1 из которого я периодически сохраняю в rtf формат.и иногда вылетает ошибка. Это происходит при нажатии на кнопку. Может ли это связано с тем что dispose не использую?
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4357 / 3427 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
28.09.2019, 05:13
а как вы сохраняете, дайте больше информации.
Что за ощибка?
Используется ли файл кем либо еще в момент сохранения?
Покажите свой код...
1
1 / 1 / 0
Регистрация: 21.11.2018
Сообщений: 82
28.09.2019, 06:43
Yury Komar, Да там все просто. Есть обычный RTB1, кнопка toolsrtip и Savefiledialog1. Есть два формата сохранения rtf и txt. В 95 случаях их 100, все сохраняет как положено. Но иногда крашит, что-то связано со stack overflow. Искал читал,ответов мало по этому поводу. В итоге понял что собирал не для той архитектуры процессора. Пересобрал, стало реже появляться. И все равно опять выкидывает( отладчик на пк где стоит программа поставить возможности нет( я подумал не может ли в rtb находится какой-то не читаемый символ который может давать ошибку?(

Добавлено через 1 минуту
И да, ошибка возникает не при нажатии кнопки сохранить, а при нажатии кнопки вызова savefiledialog
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18283 / 14206 / 5368
Регистрация: 17.03.2014
Сообщений: 28,884
Записей в блоге: 1
28.09.2019, 08:32
westcoast89, похоже что где-то в коде есть рекурсия из-за которой и возникает stackoverflow. Нужно видеть весь код чтобы сказать точно.
1
1 / 1 / 0
Регистрация: 21.11.2018
Сообщений: 82
28.09.2019, 09:54
Yury Komar,
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub toolstripbutton2_click(sender as object, e as EventArgs) Handles toolsrtipbutton2.click
If SaveFileDialog1.ShowDialog=DialogResult.OK and SaveFileDialog1.FilterIndex =2 Then
FilePath1 = SaveFileDialog1.FileName
Try 
RTB1. SaveFile(FilePath1, RichTextBoxStreamType.RichText)
Catch ex as Exception 
End try
ElseIf SaveFileDialog1.FilterIndex = 1 Then 
Try 
IO.File.WriteAllLines(Filepath1, RTB1.Lines, System.Text.Encoding.GetEncoding(1251))
Catch ex as exception 
End try
End if
End sub
Добавлено через 2 минуты
Yury Komar, Есть ещё таймер для автосохранерия, но он не мешает... И сохраняет постоянно стабильно кстати.
FilePath1 используется для такой же кнопки сохранения только в другом tooltip, это не может проблемой?

Добавлено через 3 минуты
OwenGlendower,
Что такое ресурсия я погуглил, но не очень понял как это относится к открытию Savefiledialog (
Ошибку очень тяжело отловить, редко происходит (
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4357 / 3427 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
28.09.2019, 10:57
westcoast89, покажите код таймера еще
1
1 / 1 / 0
Регистрация: 21.11.2018
Сообщений: 82
28.09.2019, 11:28
Вот что выдаёт ошибка
Имя события проблемы BEX
Имя модуля с ошибкой StackHash_0a9e
Код исключения c0000005
Данные исключения 0000008

Добавлено через 14 минут
Yury Komar,
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Timer2_Tick(sender As Object,  e as EventArgs) Handles Timer2.Tick
Dim CurLenghtRTB As Integer = RTB1.Text.Lenght 
If IO.File.Exist(FilePath1) Then 
If RTB1.Text.Lenght > 0 then
If CurLenghtRTB > LengthRTB then
SaveToolStripMenuItem.Enabled=True
SavestripButton8.Enable = true
Else 
SaveToolStripMenuItem.Enabled=false 
SavestripButton8.Enable = False
End if 
End if
End if
End sub
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4357 / 3427 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
28.09.2019, 12:52
westcoast89, не, в таймере проблем нет.
А на какой строке выдаёт ошибку то?
В коде сохранения у вас все манипуляции с файлами заключены в Try...Catch, тоесть вы не должны видеть ошибку в принцыпе.
Значит она появляется в другом месте, не в момент сохранения...

Определите/скажите где именно (строка) в коде эта ошибка, иначе тяжело помочь имея неполную информацию.
1
1 / 1 / 0
Регистрация: 21.11.2018
Сообщений: 82
28.09.2019, 12:59
Yury Komar, Судя по ошибке проблема в пк( Лечится вроде как отключением DEP...
По строке... Отладка на том пк на котором вылетает не возможна... Нет студии
Да я написал, что скорее всего в Savefiledialog дело.. Так как если открылся он, то и даст сохранить
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4357 / 3427 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
28.09.2019, 13:24
westcoast89, ненадо студию.
Вы вместе с файлом EXE перенесите еще и файл PDB или как там его.
И в окне ошибки вы увидите класс и номер строки на которой данная ошибка появилась... Это для отладки полезно, чтоб студию не ставить
1
1 / 1 / 0
Регистрация: 21.11.2018
Сообщений: 82
28.09.2019, 13:32
Yury Komar, Интересно) Беру файл pdb, кладу в корень где приложение и что потом куда смотреть?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.09.2019, 13:32
Помогаю со студенческими работами здесь

Сохранить картинки и текст из RichTextBox в rtf
Есть текст и картинки в RichTextBox подскажите как всю информацию записать в rtf ?

Как сохранить RichTextBox в файл? c#
Как сохранить RichTextBox? просто без диалогового окна. Вот код Сохранить как. void СохранитьКакToolStripMenuItemClick(object...

Как сохранить изображение из RichTextBox в файл?
На форме лежит RichTextBox, в котором EnableAutoDragAndDrop = true. RichTextBox пустой. Открываю браузер, и мышкой перетаскиваю в него...

Как сохранить текст из RichTextBox в файл doc или docx?
Всем привет! Как сохранить текст из RichTextBox в файл doc или docx?

Как сохранить содержимое RichTextBox в файл без потери форматирования
Всем доброго времени суток! Сегодня столкнулся с такой вот проблемой: пишу аналог блокнота на c#, реализовал функцию сохранения файла в...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru