Главная » Статьи для тега "variable"

Delphi 2006 – Быстрая декларация переменной и поля (Declare Variable, Declare New Field)

Добавлено Дата: 7 November, 2011 категория: Delphi

Данная возможность доступна, когда по результатам работы компилятора выявились необъявленные идентификаторы. На такой идентификатор надо установить курсор, дать команду Refactor > Declare Variable (Рефактор > Объявить переменную), в диалоговом окне Declare New Variable (Объявить новую переменную) указать идентификатор, его тип, начальное значение и при необходимости процедуру, в которой эту переменную надо объявить (рис. 3.3).

Читать »

Создание обобщенных функций агрегирования элементов

Добавлено Дата: 16 March, 2011 категория: XSLT

Задача

Требуется создать повторно используемые шаблоны для выполнения широ­кого спектра операций агрегирования набора узлов.

Решение

В обобщенном расширяемом решении применяется метод пометки узлов, описанный во введении к этой главе.

Читать »

Вычисление комбинаторных функций

Добавлено Дата: 14 March, 2011 категория: XSLT

Задача

Требуется вычислить число перестановок или сочетаний размера г для данно­го множества.

Решение XSLT 1.0

Если вы знаете, что число перестановок размера г равно N! / r!, а число со­четаний – N! / r! * (N-r)!, то может возникнуть искушение пропустить этот пример, поскольку ранее уже был приведен способ вычисления факториала. Од­нако так как факториалы растут очень быстро, придется проявить некоторое хитроумие.

Читать »

Игнорирование элементов-дубликатов

Добавлено Дата: 6 March, 2011 категория: XSLT

Задача

Требуется отобрать все узлы, уникальные в данном контексте, используя за­данный критерий уникальности.

Решение XSLT 1.0

Задача отбора уникальных узлов – типичное применение осей preceding и preceding-sibling. Если не все отбираемые элементы являются братьями, пользуйтесь осью preceding. Следующий код порождает список уникальных продуктов, встречающихся в документе SalesByPerson.xml:

Читать »

Создание повторно используемых утилит генерации SVG для графиков и диаграмм

Добавлено Дата: 28 February, 2011 категория: XSLT

Задача

Требуется создать библиотеку генераторов SVG, которой можно было бы пользоваться в приложениях, связанных с графическим представлением данным.

Решение XSLT 1.0

Если вы планируете много заниматься созданием SVG-файлов с помощью XSLT, то было бы полезно разработать библиотеку шаблонов для генерации гра­фических компонентов. В этом разделе мы приведем несколько примеров тако­го рода.

Читать »

Определение светских и церковных праздников

Добавлено Дата: 27 February, 2011 категория: XSLT

Задача

Требуется узнать, является ли заданная дата праздничной.

Решение

К первому типу праздников относятся те, которые каждый год отмечаются в один тот же день. Например, определить абсолютную дату Дня независимости в США совсем просто:

Читать »

Преобразование римских числительных в числа

Добавлено Дата: 26 February, 2011 категория: XSLT

Задача

Требуется преобразовать число, записанное римскими цифрами, в обычное число.

Решение

Римская система счисления не является позиционной. Число в ней записыва­ется путем прибавления или вычитания фиксированного количества римских цифр. Если следующий символ имеет меньшее или такое же значение, то произво­дится добавление, иначе вычитание.

Читать »

Создание обобщенных генераторов наборов узлов

Добавлено Дата: 26 February, 2011 категория: XSLT

Задача

Требуется написать повторно используемые шаблоны для динамической ге­нерации набора узлов.

Решение

Первая обобщенная функция из этой категории генерирует набор узлов путем вызова для значений, последовательность которых определяется функ­цией приращения. Процедура повторяется, пока не будет достигнута верхняя граница:

Читать »

Проверка битов

Добавлено Дата: 24 February, 2011 категория: XSLT

Задача

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

При работе с XML не пытайтесь во чтобы бы то ни стало закодировать ин­формацию в виде набора битов. Применяйте это решение лишь тогда, когда не можете контролировать способ представления данных.

Читать »

Вычисление дня недели

Добавлено Дата: 22 February, 2011 категория: XSLT

Задача

Зная день, месяц и год, требуется определить день недели.

Решение XSLT 1.0

Следующий код возвращает целое число в диапазоне от 0 до 6, где 0 соответ­ствует воскресенью.

<xsl:template name="ckbk:calculate-day-of-the-week"> <xsl:param name="date-time"/>

Читать »

Исламский календарь

Добавлено Дата: 21 February, 2011 категория: XSLT

Задача

Требуется работать с датами в исламской системе летоисчисления.

Трудно, если вообще невозможно, придумать универсально пригодные ал­горитмы для исламского календаря. Связано это с тем, что месяц начина­ется в тот день, когда человек впервые видит серп луны. Вычислить даты новолуния можно абсолютно точно, но вот видимость луны зависит от та­ких факторов, как погода и положение наблюдателя. Поэтому очень слож­но заранее сказать, когда начнется новый месяц. Хуже того, некоторым мусульманам достаточно, чтобы луну увидел местный наблюдатель, тогда как другие требуют, чтобы наблюдение было произведено двумя заслужи­вающими доверия мусульманами. Исключением является Саудовская Аравия, где в основу календаря положены астрономические вычисления, а не визуальные наблюдения. Приведенные ниже алгоритмы работы с ис­ламским календарем могут давать ошибку в несколько дней.

Читать »

Вычисление последнего дня месяца

Добавлено Дата: 14 February, 2011 категория: XSLT

Задача

Зная месяц и год, вычислить последний день месяца.

Решение XSLT 1.0

<xsl:template name="ckbk:last-day-of-julian-month"> <xsl:param name="month"/> <xsl:param name="year"/> <xsl:choose>

Читать »

Выполнение теоретико-множественных операций над наборами узлов

Добавлено Дата: 9 February, 2011 категория: XSLT

 

Задача

Требуется найти объединение, пересечение, разность или симметрическую разность двух наборов узлов. Требуется также сравнить два набора узлов на ра­венство и входимость.

Решение XSLT 1.0

Объединение ищется тривиально, так как язык XPath поддерживает эту опе­рацию напрямую:

Читать »

Форматирование даты и времени

Добавлено Дата: 5 February, 2011 категория: XSLT

Задача

Требуется отформатировать дату и время в соответствии с заданной формат­ной строкой.

Решение

Мы повторно используем многие ранее разработанные в этой главе шаблоны. В шаблоне format-date-time спецификаторы формата имеют вид %x (см. ниже), а прочие символы выводятся буквально. По умолчанию подразумевается формат ISO для даты и времени по григорианскому календарю.

Читать »

Создание обобщенных функций ограниченного агрегирования

Добавлено Дата: 2 February, 2011 категория: XSLT

Задача

Требуется написать повторно используемые шаблоны для выполнения широ­кого спектра операций ограниченного агрегирования.

Решение

<xsl:template name="generic:bounded-aggregation"> <xsl:param name="x" select="0"/> <xsl:param name="func" select=" ‘identity’ "/> <xsl:param name="func-param1"/>

Читать »