Публикации в категории “C++”

C++ и парсинг HTML на Qt

Здравствуйте. Сегодня я опишу создание приложения для слежения за посылками от доблестной и уважаемой “Почты России”. Я раскрою такие темы:

  • С++ & QtCreator
  • Разбор DOM-дерева полученной страницы
  • Работа с QDateTime, получение текущей даты в Qt
  • Работа с FireBug
  •    Работа с формами
  •    Отслеживание POST-запросов

Статья написана для одного моего замечательного друга — Алексея. Надеюсь, он поймет и усвоит весь материал, который я опишу в этой статье.

Читать далее >

Локальное время на чистом С++

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

#include <time.h>
 
std::string getCurrentTime()
{
  time_t curTime;
  struct tm *timeInfo;
 
  time(&curTime);
  timeInfo = localtime(&curTime);
 
  char buffer[1024];
  strftime(buffer, 1024, "%d.%m.%Y %X", timeInfo);
  std::string curFormatDate = std::string(buffer);
 
  return curFormatDate;
}

Читать далее >

Введение в ChaiScript

Скриптовые движки очень активно используются разработчиками в своих программах. Благодаря им можно улучшить “интерфейс” работы с информацией. Благодаря скриптовым файлам, нет нужды каждый раз перекомпилировать исходный код программы, достаточно просто передать заново скрипт для парсера, или перезапустить программу.

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

  • Загрузка уровня
  • AI
  • Управление игровым состоянием (объектами, музыкой, …)

Применить скрипты можно практически везде, была бы фантазия и потребность в этом.

В качестве скриптового движка можно выбрать большинство скриптовых языков программирования. Самые популярные это Lua и Python. Игроделы всегда спорят, что лучше. В этой статье я хочу познакомить вас с другим, более “лёгким” скриптовым языком. Если вас всё-же интересуют вышеназванные, можно использовать lua + luabind, python + boost.python. С некоторыми из них я работал, поэтому, если кто-то захочет, я смогу описать работу и с ними.

Читать далее >

Класс работы с дробями на C++

Приветствие, давно мы не шаманили на с++ :) Сегодня поговорим о небольшой олимпиадной задачке с информатики. Суть довольно проста: написать класс, который может работать с дробями. Например:

-2 5/3
*
9/10

Реализовать все 4 базовые действия над ними.

Для всего действия мы создадим 1 большой класс Fraction. Вся работа сводится до: парсим дробь из строки, сокращаем по возможности и переопределяем операторы + - / *.

Сразу же хочу выразить благодарность хорошему человеку — Илье, который не раз помогал мне с моими нубскими вопросами :) Спасибо.

Итак, сегодня мы с вами научимся переопределять операторы, писать классы, парсить строки, думать, считать :) Для начала, напишем вспомогательные функции: поиск наибольшего общего делителя и кратного (НОД/НОК). Реализовать это достаточно просто за алгоритмом Эвклида:

НОД( a, b ) = НОД( a, a mod b );
НОК( a, b ) = (a * b) / НОД( a, b );

Читать далее >