Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Использование в проекте элемента управления RichTextBox




1. Добавьте ссылку на System.Windows.Forms.dll.

2. Добавьте директиву using для пространства имен System.Windows.Forms (необязательно).

Пример

В следующем примере предоставляется образец RTF-файла, который должен быть преобразован. Файл содержит RTF-форматирование, например, данные о шрифте. В нем также содержатся четыре символа Юникода и четыре дополнительных символа ASCII. Файл открывается, передается в RichTextBox как RTF-файл, в нем производится поиск текста, отображаемом в MessageBox, и выполняется вывод в файл в формате UTF-8.

Язык C#

 

Копировать код

// Save the following RTF file to the same folder as your .exe file, and call it "test.rtf". /* {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fcharset0 Arial;}{\f1\fnil\fprq1\fcharset0 Courier New;}{\f2\fswiss\fprq2\fcharset0 Arial;}}{\colortbl ;\red0\green128\blue0;\red0\green0\blue0;}{\*\generator Msftedit 5.41.21.2508;}\viewkind4\uc1\pard\f0\fs20 This is the \i Greek \i0 word "psyche": \cf1\f1\u968?\u965?\u967?\u942?\cf2\f2 . It is encoded in Unicode.\parHere are four extended \b ASCII \b0 characters (Windows code page 1252): \'e2\'e4\u1233?\'e5\cf0\par} */ class ConvertFromRTF {   static void Main()   {        string path = @"test2.rtf";        //Create the RichTextBox. (Requires a reference to System.Windows.Forms.dll.)       System.Windows.Forms.RichTextBox rtBox = new System.Windows.Forms.RichTextBox();        // Get the contents of the RTF file. Note that when it is       // stored in the string, it is encoded as UTF-16.       string s = System.IO.File.ReadAllText(path);        // Display the RTF text.       System.Windows.Forms.MessageBox.Show(s);        // Convert the RTF to plain text.       rtBox.Rtf = s;       string plainText = rtBox.Text;        // Display plain text output in MessageBox because console       // cannot display Greek letters.          System.Windows.Forms.MessageBox.Show(plainText);        // Output plain text to file, encoded as UTF-8.       System.IO.File.WriteAllText(@"output.txt", plainText);   } }

Символы RTF кодируются восемью битами. Однако формат не позволяет пользователям задавать символы в Юникоде в дополнение к дополнительным символам ASCII из заданных кодовых страниц. Поскольку свойство RichTextBox..::.Text имеет тип string, символы кодируются как Юникод UTF-16. Дополнительные символы ASCII и символы Юникода из исходного RTF-документа правильно кодируются в выводимый текст.

При использовании метода File..::.WriteAllText для записи текста на диск, текст кодируется как UTF-8 (без отметки порядка байтов).

 

 










Последнее изменение этой страницы: 2018-06-01; просмотров: 204.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...