• Как продвинуть сайт на первые места?
    Вы создали или только планируете создать свой сайт, но не знаете, как продвигать? Продвижение сайта – это не просто процесс, а целый комплекс мероприятий, направленных на увеличение его посещаемости и повышение его позиций в поисковых системах.
    Ускорение продвижения
    Если вам трудно попасть на первые места в поиске самостоятельно, попробуйте технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Если ни один запрос у вас не продвинется в Топ10 за месяц, то в SeoHammer за бустер вернут деньги.
  • Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;


Иллюстрированный самоучитель по Architecture .NET

Добавление на сервер обработки управляющей структуры while-endwhile

Следующий пример показывает использование цикла с условием окончания while-endwhile в соответствующем файле while_endwhile.srf. Чтобы сохранить количество выполнений цикла, был добавлен компонент данных типа int, называемый count (счетчик). Этой переменной в конструкторе класса обработчика присваивается начальное значение, равное 0, а затем при каждом обращении к ShouldThisBeDoneAgain ("должно ли это быть сделано снова") значение count увеличивается на единицу.

Итерация продолжается до тех пор, пока выражение count <= 10 не станет ложным. Обратите внимание, что в коде C++ на самом деле цикла с условием окончания while нет, а находится он в соответствующем .srf-файле. Кроме того, в классе обработчика имеется два метода замены дескрипторов GetNextNumber (Получить следующее число) и GetNextNumberSquared (Получить квадрат следующего числа). Эти методы соответствуют двум дескрипторам из .srf-файла, появляющимся в цикле с условием окончания while.

// Обработчик для проверки цикла с условием
// окончания while – endwhile
[request_handler("while_endwhile")]
class C_while_endwhile_ATLServerAppHandler
{
protected: // защищенный
int count; // счетчик
C_while_endwhile_ATLServerAppHandler(): count(0) // счетчик
{
}
[ tag_name(name="ShouldThisBeDoneAgain") ]
HTTP_CODE ShouldThisBeDoneAgain(void)
{
count++; // счетчик++;
if (count <= 10) // если (счетчик <= 10)
return HTTP_SUCCESS;
else
return HTTP_S_FALSE;
}
[ tag_name(name="GetNextNumber") ]
HTTP_CODE GetNextNumber(void)
{
m_HttpResponse
<< "The square of " << count << " is "; // Квадрат
//счетчика
return HTTP_SUCCESS;
}
[ tag_name(name="GetNextNumberSquared") ]
HTTP_CODE GetNextNumberSquared(void)
{
m_HttpResponse << count*count;
return HTTP_SUCCESS;
}
};

Соответствующий файл while_endwhile.srf отображает таблицу с числами и их квадратами. В примере видно, что дескрипторы могут быть вложены так, как требуется. Это приводит к тому, что дескрипторы GetNextNumber и GetNextNumberSquared заменяются несколько раз [Комментарии вида <! – комментарий – > вставлены для удобства – Прим ред.].

<html>
<BODY> <! – ТЕЛО – >
<Р>{{handler ATLServerApp.dll/while_endwhile}}</P> <! – обработчик – >
<р>
<TABLE> <! – таблица – >
{{while ShouldThisBeDoneAgain}}
<TR>
<TD>{{GetNextNumber}}</TD>
<TD>{{GetNextNumberSquared}}</TD>
</TR>
{{endwhile}}
</TABLE> <! – таблица – >
</P>
</BODY> <! – тело – >
</html>

Результат можно увидеть, перейдя по адресу http://localhost/ATLServerApp/while_endwhile.srf. Что получается при этом переходе, показано на рис. 12.12.

Иллюстрированный самоучитель по Architecture .NET › Web-узлы и Web-службы, работающие на основе ATL Server › Добавление на сервер обработки управляющей структуры while-endwhile
Рис. 12.12. Просмотр while_endwhile.srf

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.