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

подскажите как написать Hello World!

12.05.2009, 10:22. Показов 6362. Ответов 7

Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Green Посмотреть сообщение
Используйте RTF форматирование и свойство RichTextBox.Rtf

подскажите как написать Hello World!
this->richTextBox1->Rtf = и что дальше написать?? чтоб получилось Hello World!
помогите! что-то не могу нигде найти как это будет в Visual C++?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.05.2009, 10:22
Ответы с готовыми решениями:

Как написать обычный консольный Hello World?
Как написать обычный консольный Hello World? Что то никак не получается

Материнская плата GIGABYTE GA-G31M-ES2L. Подскажите как её улучшить хотя бы до World of Tanks?
Материнская плата GIGABYTE GA-G31M-ES2L,Процессор Intel® Pentium® E5500,оперативная память 2 гб, видио кары нет. Можно ли и за сколько её...

как написать на vb программу, выводящую на консоле 'Hi, world!'
как написать на vb программу, выводящую на консоле 'Hi, world!'(тип проекта консоль)

7
2923 / 844 / 324
Регистрация: 30.04.2009
Сообщений: 2,633
12.05.2009, 10:34
this->richTextBox1->Rtf ='hello World';
я не знаток Visual C++ но мне почему то кажется что должно быть так
0
0 / 0 / 0
Регистрация: 12.05.2009
Сообщений: 3
12.05.2009, 13:36  [ТС]
вообщето так
C#
1
this->richTextBox1->Text=L"Hello World!";
но как сделать разноцветным? знаю только что можно через this->richTextBox1->Rtf="";
но какой синтаксис?
попробовал посмотреть что там в нутри -
C#
1
this->richTextBox1->Text=this->richTextBox1->Rtf;
выдало это -
Code
1
2
3
4
{\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset0 Microsoft Sans Serif;}}
\viewkind4\uc1\pard\lang1033\f0\fs17\par
\par
}
если запихнуть это в
C#
1
2
3
4
this->richTextBox1->Rtf="{\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset0 Microsoft Sans Serif;}}"+
"\viewkind4\uc1\pard\lang1033\f0\fs17\par"+
"\par"+
"}";
то при сборке ругается на синтаксис. как же сделать? или это работает только на C#?

Добавлено через 2 часа 52 минуты 26 секунд
ура получилось! нашел на немецком форуме, ну конечно ничего не понял что там написано, единственно что привлекло мое внимание это двойной "" перед каждым RTF-кодом! если кому надо то вот Hello World! в цветном исполнении:

C#
1
2
3
4
this->richTextBox1->Rtf="{\\rtf1\\ansi\\deff0{\\fonttbl{\\f0\\froman\\fprq2\\fcharset204{\\*\\fname Times New Roman;}Times New Roman CYR;}{\\f1\\fnil\\fcharset204 Microsoft Sans Serif;}}"+
"{\\colortbl ;\\red255\\green0\\blue0;\\red51\\green153\\blue102;}"+
"\\viewkind4\\uc1\\pard\\cf1\\lang1033\\f0\\fs24 Hello\\cf0  \\cf2 World!\\cf0\\lang1049\\f1\\fs17\\par"+
"};";
0
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
13.05.2009, 03:24
Wiki
Формат Rich Text (RTF)
1
Nilka
16.05.2009, 16:46
Я сейчас как раз делаю xml - редактор на RichTextBox (с цветовой разметкой). Для задания цвета вот что надо делать:

1. Сформировать цветовую таблицу (colortable) в формате {\colortbl; цвет1; цвет2; ... ; цветN;}
RGB - составляющие получаем из любого графического редактора (подойдет и paint)
2. Чтобы выделить цветом текст его следует заключить в блок {\cfN обычный_текст}, где N - номер цвета в таблице. Можно не указывать границы блока {}, тогда весь текст после \cfN будет одним цветом.
3. Заключить цветовую таблицу и размеченный текст в блок rtf, т.е. {\rtf цветовая_таблица размеченный_текст }
Все! Полученная строка может быть присвоена свойству Rtf из RichTextBox.

В общем, вот так:
C#
1
richTextBox.Rtf =  @"{\rtf\ansi{\colortbl;\red255\green0\blue0;\red0\green255\blue0;}\cf1Hello \cf2World}"
Формирование "цветного" xml (\par - новая строка):
C#
1
2
3
4
5
6
7
8
9
        public string GetFormattedRtf()
        {
            string colorTable = @"{\colortbl;\red0\green0\blue0;"+  //1 black, text 
                                @"\red255\green0\blue0;" +          //2 red, attributes          
                                @"\red0\green0\blue255;" +          //3 blue, </?">
                                @"\red163\green21\blue21;" +        //4 brown, element names
                                @"\red0\green128\blue0;}";          //5 green, comments
            return @"{\rtf\ansi" + colorTable + this.GetFormattedRtf(this.document.ChildNodes, 0) + ".}";
        }
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
        private string GetFormattedRtf(XmlNodeList child, byte dept)
        {
            string FormattedXml = "";
            foreach (XmlNode node in child)
            {
                if (node.NodeType == XmlNodeType.Element)
                {
                    FormattedXml += GetTab(dept) + @"\cf3<\cf4" + node.Name;
                    foreach (XmlAttribute attribute in node.Attributes)
                    {
                        FormattedXml += @" \cf2" + attribute.Name + @"\cf3=" + "\"" + attribute.Value + "\"";
                    }
                }
                if (node.HasChildNodes)
                {
                    FormattedXml += @"\cf3>";
                    switch (node.FirstChild.NodeType)
                    {
                        case XmlNodeType.Element:
                            {
                                FormattedXml += @"\par" + GetFormattedRtf(node.ChildNodes, ++dept);
                                FormattedXml += GetTab(--dept) + @"\cf3</\cf4" + node.Name + @"\cf3>\par";
                                break;
                            }
                        case XmlNodeType.Text:
                            {
                                FormattedXml += @"\cf1" + node.FirstChild.Value;
                                FormattedXml += @"\cf3</\cf4" + node.Name + @"\cf3>\par";
                                break;
                            }
                    }
                }
                else
                {
                    FormattedXml += @"\cf3/>\par";
                }
            }
            return FormattedXml;
        }
C#
1
2
3
4
5
6
7
8
        private void Paint_Click(object sender, EventArgs e)
        {
            DataReader reader = new DataReader(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Workers.accdb");
            reader.Read();
            FormattedXmlString xmlstring = new FormattedXmlString(reader.GetXmlDocument());
            TextWindow.Rtf = xmlstring.GetFormattedRtf();
 
        }
Добавлено через 4 минуты 41 секунду
Забыл сказать, что \ и { } в rtf - особые символы, в обычном тексте их быть не должно. \ - выделяет зарезервированные в rtf шаблоны, фигурные скобки - границы применения шаблона.
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
17.05.2009, 04:07
для отображения \ и { } в обычном тексте в коде rtf надо их пометить впереди знаком \.
Code
1
richTextBox.Rtf =  @"{\rtf\ansi{\colortbl;\red255\green0\blue0;\red0\green255\blue0;}\cf1 \}\{el\\o \cf2World}"
1
0 / 0 / 0
Регистрация: 12.05.2009
Сообщений: 3
17.05.2009, 11:57  [ТС]
хмм.... интересно, а у меня работает только когда два слеша
C++
1
\\{ \\}
тогда выдает { }, с одним слешем ругается.
и только такая конструкция
C++
1
\\{   \\} \\/  \\\\
выдает { } / \
как это понимать?
особенность C++ VS2005?
0
Nilka
17.05.2009, 14:12
Это потому \ - специальный символ и в Rtf, и в языках программирования.
В программировании им отмечаются Escape Sequence ("эскейп" последовательности, как бы коряво это не звучало), поэтому, чтобы создать строковую константу , содержащую один \ нужно использовать Escape - последовательность \\.
В Rtf - такая же фигня. \ - спецсимвол, чтобы текст содержал слэш нужно писать \\.

C#
1
2
Console.Write("\\");   - напишет \
Console.Write("\\\\");   - напишет \\
Выведем строку slash : \ в RichTextBox
C#
1
2
3
4
5
RichTextBox.Rtf = "{\\rtf\\ansi{ slash : \\\\ }";
/* 
"{\\rtf\\ansi{ slash : \\\\ }"  компилятор переводит в "{\rtf\ansi{ slash : \\ }" 
согласно таблице Escape - последовательностей, текстовый процессор переводит Rtf
 "{\rtf\ansi{ slash : \\ } в "slash : \" согласно спецификации Rtf  */

В твоем случае :
C++
1
\\{   \\} \\/  \\\\
Компилятор, заменяя \\ на \ согласно таблице переводит это все соответственно в
C++
1
\{  \}  \/  \\
Дальше работает текстовый процессор, получаем
C++
1
{  }  /  \
В C#, кстати, собака (@) перед строкой означает "игнорируй Escape - последовательности"

Escape Sequence Represents
\a Bell (alert)
\b Backspace
\f Formfeed
\n New line
\r Carriage return
\t Horizontal tab
\v Vertical tab
\' Single quotation mark
\" Double quotation mark
\\ Backslash
\? Literal question mark
\ooo ASCII character in octal notation
\xhh ASCII character in hexadecimal notation
\xhhhh Unicode character in hexadecimal notation if this escape sequence is used in a wide-character constant or a Unicode string literal.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.05.2009, 14:12
Помогаю со студенческими работами здесь

подскажите о Hello world
Несколько вопросов: - Стоит ли использовать визуальный редактор? Я почему-то стараюсь им не пользоваться; - Написал меню руками, без...

Как написать простейший пример "Hello World" на C++ в Visual Studio 2008?
Всем привет. Подскажите пожалуйста, как написать простейший Hello World на C++ в Visual Studio 2008? Я создаю проект кансольного...

Как и на чем написать и скомпилировать программу, чтоб загружалась через bootmgr и выводить "hello world"?
Ну что-то типа совсем простой ОС, если это можно так назвать.

Написать HELLO WORLD на javaScript
Установлена Visual Studio 2017, хочу написать первую программу на JavaScript. Дайте пожалуйста ссылку, как это сделать.

Не получилось написать Hello, World
Вот.. Решил мало-помалу возвращаться в C++, написал простенький helloworld, а он... не взлетел :) #include &lt;iostream&gt; #include...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru