Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB .NET > VB.Net сохранение содержимого RichTextBox


Автор: SKAPeR 22.11.2010, 20:53
В программе у меня редактируется текст, шрифт, цвет, и потом сохраняется...  Но при загрузке из файла остается только текст, без изменений в шрифте, размере и т.п.
он должен  сохраняться  в двоичный код наподобие этого:

Код

Dim текст As New IO.BinaryWriter(IO.File.Open(Application.StartupPath & "\test1.usp", IO.FileMode.Create))
                  Try
                      Dim вопрос1 As String = Convert.ToString(RichTextBox1.SaveFile) ' Здесь отредактированный текст
                      Dim текст1 As String = Convert.ToString(d1.Text) ' Здесь текст без редактирования
                      Dim текст2 As String = Convert.ToString(d1.Text) ' Здесь текст без редактирования
                      'И т.д.
                  Finally
                      текст.Close()
                  End Try


ПС: замена RichTextBox1.SaveFile  на RichTextBox1.text не помогает
ППС: работает этот вариант RichTextBox1.SaveFile(Application.StartupPath & "\test1.xaml") , но мне нужно именно по 1 варианту.

Автор: diadiavova 22.11.2010, 22:54
Цитата(SKAPeR @  22.11.2010,  20:53 Найти цитируемый пост)

Dim вопрос1 As String = Convert.ToString(RichTextBox1.SaveFile) ' Здесь отредактированный текст

А это что такое? smile С каких это пор метод SaveFile стал возвращать значение?

Просто сохраняй в файл с помощью SaveFile, а потом грузи из файла с помощью LoadFile
http://msdn.microsoft.com/ru-ru/library/system.windows.forms.richtextbox.loadfile.aspx

А с помощью этой перегрузки метода
http://msdn.microsoft.com/ru-ru/library/e4a710b1.aspx
можно определить параметры сохранения

Автор: SKAPeR 23.11.2010, 00:30
А с .text сохраняет только текст, без изменений стиля... 
Код

 Dim вопрос1 As String = Convert.ToString(RichTextBox1.text)

мой код предусматривает штук 40 значений Вопрос, вопрос1, вопрос2 и т.п.  мне надо этот .text переделать во что-подобное .saveFile (если ты понял о чем я), 
И  собственно должен быть только один файл со всеми эти значениями, откуда потом их можно будет загружать! 
А не каждый вопрос в своем файле по коду RichTextBox1.SaveFile(Application.StartupPath & "\вопрос1.xaml")

Автор: diadiavova 23.11.2010, 00:47
То, о чем ты говоришь, теоретически реализуемо, но это гемор тот еще. Помимо свойства Text у ричтекстбокса есть еще свойство Rtf. Можешь сохранить его, но объединить два таких текста будет непросто, для этого надо хоть немного знать Rich Text Format и придется самому отделять данные от метаданных. И это вообще неверный подход к проблеме. Тут надо либо самому написать интерфейс, либо воспользоваться,ну например веббраузером.

Добавлено через 50 секунд
Это вообще принципиально, чтобы все сохранялось в RTF?

Автор: SKAPeR 23.11.2010, 01:58
Цитата(diadiavova @  23.11.2010,  00:47 Найти цитируемый пост)
Это вообще принципиально, чтобы все сохранялось в RTF? 

Если я буду сохранять в RTF, то получается что нельзя будет извлечь другие значения, записанные в int32...
Код

Dim значение1 As Integer = Convert.ToInt32(p3.Text)

Автор: diadiavova 23.11.2010, 05:05
Цитата(SKAPeR @  23.11.2010,  01:58 Найти цитируемый пост)
Если я буду сохранять в RTF, то получается что нельзя будет извлечь другие значения, записанные в int32..

Здрасте, приплыли. Я думал, тебе наоборот надо в этом формате сохранить, тогда я вообще не понял, что ты имел в виду, когда писал
Цитата(SKAPeR @  22.11.2010,  20:53 Найти цитируемый пост)
Но при загрузке из файла остается только текст, без изменений в шрифте, размере и т.п.


Короче, на сколько я понял твою задачу, тут ричтекстбокс вообще ни при чем. Тебе надо соорудить собственный интерфейс и сохранять всё в базу данных. При необходимости можно реализовать экспорт данных в любой другой формат. А ричтекстбокс работает с RTF.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)