Необходимо разработать метод DefineStyle.

Описание метода

DefineStyle(pageUrl : string; pageContent : string; pageStyles:string; htmlPart: string; posIndex: int; ref styleSheets: Dictionary ) : HtmlStyle

Где:

pageUrl - url сайта

pageContent - контент веб страницы

pageStyle - стили форматирования данной страницы

htmlPart - часть html контента с тегами форматирования

posIndex - индекс позиции в htmlPart стиль которой определяется

styleSheets - таблицы стилей форматирования, где

key - относительный путь к таблице стилей - значение параметра ref, например

,то key="/css/main.css";

value - содержание данного файла.

HtmlStyle - возвращаемый класс - см. далее

В данном методе необходимо определить стиль форматирования в строке htmlPart в позиции номер posIndex.

Стиль форматирования определяется по тегам форматирования (, и т.п.) и по таблицам со стилями форматирования.

Таблицы стилей форматирования могут быть либо в контентенте данной страницы, либо в другом файле.

В параметре styleSheets представлены все ранее загруженные стили форматировния ()

В pageStyle - стили форматирования с данной страницы.

Use case по нахождению описания определенного класса:

1. Если pageStyle == null, значит стили форматирования с данной страницы еще никто не загружал. Находим описания всех стилей в pageContent. Кладем их в pageStyle (если стилей не найдено, то pageStyle = string.Empty). Ищем нужный стиль. Если не находим, то:

2. Пробегаем по всем файлам из styleSheets, если нашли нужный стиль - ОК. Если нет - продолжаем далее.

3. Определяем все ссылки на стили форматирования для данной страницы

4. Те, которые не представлены в styleSheets загружаем и ищем стиль форматирования там.

5. Добавляем загруженный файл в styleSheets.

Класс HtmlStyle

Свойства:

IsBold : bool // жирный

IsItalic : bool // курсивный

IsCrossOut : bool // зачеркнутый

IsUnderLine : bool // подчеркнутый

FontName : string // название шрифта

FontSize : double // размер шрифта

Color : Color// цвет

Align // расположение

Средстава разработки: C# VS2008

16 лет назад
andreyyur
Андрей 
40 лет
16 лет в сервисе
Был
6 месяцев назад

Выбранный исполнитель

limonof
38 лет
17 лет в сервисе
Был
10 лет назад
16 лет назад
$30
2 дня

Заявки фрилансеров

limonof
38 лет
17 лет в сервисе
Был
10 лет назад
16 лет назад