2 / 2 / 1
Регистрация: 26.03.2012
Сообщений: 62
1

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

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

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

Вся сложность в том,что я понятия не имею как сделать компилятор...есть конечно пару задумок,но как то думаю очень массивная работа получается.Это нужно каждый тег расписать на открытие\закрытие (наличие\отсутствия-тега HTML\BODY\HEAD) и потом по написанному просто делать так...Если такой тег присутсвует,проверить его на закрытие,если не закрытый,то тогда ошибка.если все норм так сканируется все,а если все норм вообще,тогда это все написанное надо как то сохранить в файл в формате HTML и запустить браузером по умолчанию....я прав или нет?пожалуйста,подскажите.вообще туплю=(((
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.10.2012, 18:33
Ответы с готовыми решениями:

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

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

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

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

25
LK
Заблокирован
07.10.2012, 19:31 2
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
2 / 2 / 1
Регистрация: 26.03.2012
Сообщений: 62
07.10.2012, 19:33  [ТС] 3
да,да да(я образно говорил о компиляции).мне именно и нужно проверка синтаксиса...как это реализовать я пока сомневаюсь.как это можно сделать более лучшим способом?
0
6280 / 3565 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
07.10.2012, 19:47 4
Думаю что на валидность можно проверить с помощью WebKit или Gecko
0
2 / 2 / 1
Регистрация: 26.03.2012
Сообщений: 62
07.10.2012, 19:51  [ТС] 5
Цитата Сообщение от Петррр Посмотреть сообщение
Думаю что на валидность можно проверить с помощью WebKit или Gecko
Спасибо,но мне нужно чтоб все выполнялось в рамках моей программы,не используя дополнительных программ
0
6280 / 3565 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
07.10.2012, 19:53 6
Так вы подцепите движок к своей программе.
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
07.10.2012, 20:06 7
wattot, html интерпретируется браузером. В принципе, можно было бы и скомпилить в какой нибудь бесполезный натив, но ни один браузер его уже не поймёт, можно только скормить локальной операционной системе, так что если в браузере, тем более по разделу сайтостроение, то ни какой компиляции.

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


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

Добавлено через 1 минуту
taras atavin, в том "браузере", IMO, дожны быть две кнопочки [ВПЕРЙОД]-[ВЗАД].
0
6280 / 3565 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
07.10.2012, 20:24 9
Цитата Сообщение от LK Посмотреть сообщение
проверять "обычный електронный учебник" на валидность, это круто, имхо
Что Вы имели ввиду?
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
07.10.2012, 20:25 10
Цитата Сообщение от LK Посмотреть сообщение
taras atavin, в том "браузере", IMO, дожны быть две кнопочки [ВПЕРЙОД]-[ВЗАД].
При чём здесь кнопки? Ссылки, оформление, скриптоджава обязательны, а кнопок может не быть вообще.
0
LK
Заблокирован
07.10.2012, 20:38 11
Ну шо вы в самом деле - делается "обычный електронный учебник".

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

Цитата Сообщение от wattot Посмотреть сообщение
нужно сделать задание-в котором он должен написать например мини страничку которая должна проверить написанный код на ошибку(если присутствует ошибка,то указать строчку)
Добавлено через 55 секунд
LK, причем тут электронный учебник и проверка синтаксиса HTML?
0
LK
Заблокирован
07.10.2012, 20:40 13
Я ж говорю, туманно все, но думаю, что речь идет о текстовой опечатке
Цитата Сообщение от wattot Посмотреть сообщение
.Если такой тег присутсвует,проверить его на закрытие,если не закрытый,то тогда ошибка.
, а не семантике.
0
6280 / 3565 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
07.10.2012, 20:43 14
LK, аааа, вон как глубоко ты копнул
0
LK
Заблокирован
07.10.2012, 20:44 15
Петррр, та не, я как раз по поверхности проскользнул . Вот придет ТС, и все нам расскажет.
0
2 / 2 / 1
Регистрация: 26.03.2012
Сообщений: 62
07.10.2012, 21:16  [ТС] 16
Цитата Сообщение от LK Посмотреть сообщение
Петррр, та не, я как раз по поверхности проскользнул . Вот придет ТС, и все нам расскажет.

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

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


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

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

Надеюсь сейчас опять не намудрил
0
LK
Заблокирован
07.10.2012, 21:21 17
Лучший ответ Сообщение было отмечено как решение

Решение

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

Есть ведь всякие там классы xxxHTMLDocumentxxx.
0
07.10.2012, 21:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.10.2012, 21:31
Помогаю со студенческими работами здесь

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

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

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

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

Как импортировать данные из одного html файла в другой html файл ?
Здравсвтуйте! Можно ли импортировать часть данных из одного файла в конкретное место кода...

Написать программу в HTML нужно реализовать интерфейс по фотографии HTML+CSS
Всем привет, прошу помочь мне с этим заданием, вот фотография таблицы


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru