Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
 Аватар для wattot
2 / 2 / 1
Регистрация: 26.03.2012
Сообщений: 62

HTML компилятор на С++

07.10.2012, 18:33. Показов 2837. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем идея,а точнее большой и смачный пинок научного руководителя типа кодьте,на то вы и поступали на факультет информационных технологий.
Вот сама суть.Нужно написать такую:Вроде прочитав первый раз тему научной работы-обычный електронный учебник,но оказалось все по сложней.
ДОлжно быть все именно так:Человек выбрал тему по HTML(так как тема сайтостроение)-прочитал-чтоб пройти к следующей теме,нужно сделать задание-в котором он должен написать например мини страничку которая должна проверить написанный код на ошибку(если присутствует ошибка,то указать строчку),если ошибки нет,запустить и отобразить написанное(в браузере).

Вся сложность в том,что я понятия не имею как сделать компилятор...есть конечно пару задумок,но как то думаю очень массивная работа получается.Это нужно каждый тег расписать на открытие\закрытие (наличие\отсутствия-тега HTML\BODY\HEAD) и потом по написанному просто делать так...Если такой тег присутсвует,проверить его на закрытие,если не закрытый,то тогда ошибка.если все норм так сканируется все,а если все норм вообще,тогда это все написанное надо как то сохранить в файл в формате HTML и запустить браузером по умолчанию....я прав или нет?пожалуйста,подскажите.вообще туплю=(((
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.10.2012, 18:33
Ответы с готовыми решениями:

Компилятор HTML
Уважаемы! Скажите а есть ли HTML компилятор, а то в блокноте меня не вдохновляет писать? (если можно ссылочку) Спасибо!

Html и компилятор
Можно ли в сборку приложения положить htm/html файл, скомпилировать, и прочитать его оттуда? Если да, то как? Пока получилось загрузить...

Компилятор (Visual C++ 6.0) в плохой совместимости с Windows 7. Посоветуйте другой компилятор
Здравствуйте! Я недавно начал заниматься С++, но мой компилятор (Visual C++ 6.0) в плохой совместимости с Windows 7 Посоветуйте какой...

25
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
07.10.2012, 19:31
HTML - просто язык гипертекстовой разметки, ни о какой "компиляции" речи нет. Из вашего довольно туманного объяснения я понял, если понял правильно, что нужен обыкновенный текстовый, не визуальный, редактор HTML с проверкой синтаксиса этого самого HTML, что решается массивом тегов в StringList и их проверкой при вводе, а это уже проще. Сохранение SaveToFile("test.html") и отображение в бравзере, после сохранения странички на диск, как обычно, TCPPWebBrowser-URL("test.html").

А самое то - сделать шаблон html странички:
HTML5
1
2
3
4
5
6
7
8
9
<html>
 <head>
  <title>title</title>
 </head>
 <body>
  <h1>header1</h1>
  <p>para</p>
</body>
</html>
, кучу переменных title, header1, para и тд., в программе - поля мемо и эдит - title=Edit->Text; и т.д., подгружать шаблон, заполнять поля, потом текст всех этих полей занести в StringList, сохранить список в файл и открыть в просмотрщике.

Или без шаблона:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
AnsiString html, head1, head2, title1, title2 titletext, ... ;
html1 = "<html>"
html2 = "</html>"
head1 = "<head>";
head2 = "</head>";
title1 = "<title>";
title2 = "</title>";
titletext = Edit->Text; // вставка на позиции курсора
para1 = "<p";
para2 = "</p>";
paratext = Memo->Text; // вставка на позиции курсора
// и т.д. ...
// лучшее, конечно, в двумерный массив, например, тот же самый стринг-лист с его нейм=велью
...
Потом добавляем кнопочки, по нажатию которых добавляем теги в поле редактирования, например, то же самое мемо, или рич-эдит, к которому можно прикрутить подсветку синтаксиса, а между тегами вставляем из мемы или эдита свой супер-пупер текст своей супер-пупер странички.

Тупо, в лоб, но со вкусом .
1
 Аватар для wattot
2 / 2 / 1
Регистрация: 26.03.2012
Сообщений: 62
07.10.2012, 19:33  [ТС]
да,да да(я образно говорил о компиляции).мне именно и нужно проверка синтаксиса...как это реализовать я пока сомневаюсь.как это можно сделать более лучшим способом?
0
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
07.10.2012, 19:47
Думаю что на валидность можно проверить с помощью WebKit или Gecko
0
 Аватар для wattot
2 / 2 / 1
Регистрация: 26.03.2012
Сообщений: 62
07.10.2012, 19:51  [ТС]
Цитата Сообщение от Петррр Посмотреть сообщение
Думаю что на валидность можно проверить с помощью WebKit или Gecko
Спасибо,но мне нужно чтоб все выполнялось в рамках моей программы,не используя дополнительных программ
0
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
07.10.2012, 19:53
Так вы подцепите движок к своей программе.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
07.10.2012, 20:06
wattot, html интерпретируется браузером. В принципе, можно было бы и скомпилить в какой нибудь бесполезный натив, но ни один браузер его уже не поймёт, можно только скормить локальной операционной системе, так что если в браузере, тем более по разделу сайтостроение, то ни какой компиляции.

Добавлено через 1 минуту
Цитата Сообщение от wattot Посмотреть сообщение
Спасибо,но мне нужно чтоб все выполнялось в рамках моей программы,не используя дополнительных программ
А браузер ты тоже сам будешь писать?
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
07.10.2012, 20:22
wattot, образно можно говорить с девушкой, а не формировать ТЗ на прогерском форуме. А проверка синтаксиса - в самой первой части моего гламурного сообщения. Начинайте писАть , а там посмотрим.


Петррр, проверять "обычный електронный учебник" на валидность, это круто, имхо

Добавлено через 1 минуту
taras atavin, в том "браузере", IMO, дожны быть две кнопочки [ВПЕРЙОД]-[ВЗАД].
0
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
07.10.2012, 20:24
Цитата Сообщение от LK Посмотреть сообщение
проверять "обычный електронный учебник" на валидность, это круто, имхо
Что Вы имели ввиду?
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
07.10.2012, 20:25
Цитата Сообщение от LK Посмотреть сообщение
taras atavin, в том "браузере", IMO, дожны быть две кнопочки [ВПЕРЙОД]-[ВЗАД].
При чём здесь кнопки? Ссылки, оформление, скриптоджава обязательны, а кнопок может не быть вообще.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
07.10.2012, 20:38
Ну шо вы в самом деле - делается "обычный електронный учебник".

Добавлено через 1 минуту
Петррр, то, что основная задача - проверка синтакса хтмл при редактировании исходного кода страницы, насколько я понимаю.
0
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
07.10.2012, 20:39
А как же:

Цитата Сообщение от wattot Посмотреть сообщение
нужно сделать задание-в котором он должен написать например мини страничку которая должна проверить написанный код на ошибку(если присутствует ошибка,то указать строчку)
Добавлено через 55 секунд
LK, причем тут электронный учебник и проверка синтаксиса HTML?
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
07.10.2012, 20:40
Я ж говорю, туманно все, но думаю, что речь идет о текстовой опечатке
Цитата Сообщение от wattot Посмотреть сообщение
.Если такой тег присутсвует,проверить его на закрытие,если не закрытый,то тогда ошибка.
, а не семантике.
0
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
07.10.2012, 20:43
LK, аааа, вон как глубоко ты копнул
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
07.10.2012, 20:44
Петррр, та не, я как раз по поверхности проскользнул . Вот придет ТС, и все нам расскажет.
0
 Аватар для wattot
2 / 2 / 1
Регистрация: 26.03.2012
Сообщений: 62
07.10.2012, 21:16  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
Петррр, та не, я как раз по поверхности проскользнул . Вот придет ТС, и все нам расскажет.

Ну чтож вы все так преувеличиваете=)))конечно извеняюсь что пишу "туманно".сейчас понял все свои ошибки в обьяснении и напишу все коротко и понятно.

1)учебник в котором после темы есть задание с написанием "мини-сайтов"
2)Основная сложность программы-HTML редактор,который будет проверять написанный пользователем код на наличие ошибок(если они присутствуют указывать на строку),если они отсутствуют-запустить в браузере.


Мои мысли по поводу HTML редактора:
1)Сделать поиск обязательных компонентов кода (<html></html><body></body>,<head></head>)
2)ПОиск всех остальных тегов.Написать все теги по которым будет осущеставляться поиск.Например пользователь написал такую строку:
<a href="site.ru"><h1>заголовок</a>
Где не закрыт </h1>

ПО поиску был найден тег <h1>,следовательно он продолжает поиск по данному тегу на его закрытие.если он его находит,идет дальше,если он отсутствует-останавливает поиск и пишет строку в коде с ошибкой.

Надеюсь сейчас опять не намудрил
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
07.10.2012, 21:21
Лучший ответ Сообщение было отмечено как решение

Решение

Кроме того, тег а не есть контейнер, и данная запись
HTML5
1
<a href="site.ru"><h1>заголовок</a>
не верна:
HTML5
1
<h1><a href="site.ru">заголовок</a></h1>
Цитата Сообщение от wattot Посмотреть сообщение
Мои мысли...
ну вот и начинайте реализовывать свои мысли .
0
 Аватар для wattot
2 / 2 / 1
Регистрация: 26.03.2012
Сообщений: 62
07.10.2012, 21:23  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
ну вот и начинайте реализовывать свои мысли .
Ну вообще ход мыслей правильный ?=)
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
07.10.2012, 21:26
Во-первых нужен справочник тегов. Во-вторых надо реализовать парсер. Если всё правильно, передавай в браузер, он распарсит ещё раз и всё интерпретирует.
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
07.10.2012, 21:31
Ну можно готовый какой нить парсер использовать... главное понять как обрабатывать ошибки с помощью него.

Есть ведь всякие там классы xxxHTMLDocumentxxx.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.10.2012, 21:31
Помогаю со студенческими работами здесь

В файл HTML записан HTML код с выполнением скрипта. Сформировать новое окно из этого HTML кода (c php)
php используется для взятия переменной с сервера, поэтому требуется php переменная. Сейчас я поместил файлы в один каталог, просто для...

Ошибка HTML "No module named 'html.entities'; 'html' is not a package"
Добрый день. Подскажите, пожалуйста, следующий вопрос. У меня есть парсер сайта, который записывает результат в txt файл, всё работало...

Как вставить в текущую html-страницу содержимое другого html-файла?
Как вставить в текущую html-страницу содержимое другого html-файла? Допустим есть файл index.php: &lt;html&gt; ...

Как отобразить в WebBrowser html страницу по html коду, который расположен в БД?
Как отобразить в &quot;WebBrowser&quot;(ActiveX) и (или) &quot;ВебБраузер&quot; html страницу на основании html кода, который расположен в...

Белое пространство (вне тега <html></html>) под основным контентом
Добрый день! Клиент, в качестве эксперимента наверное, решил добавить на сайт Elementor. Это при том что по по ТЗ он создавался на основе...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru