четверг, 21 ноября 2013 г.

C++. Convert string to hex

После вчерашней заметки C++. Convert hex to string, стоит привести пример решения обратной задачи. То бишь, сконвертировать string в hex.
#include <iostream>
#include <sstream>

using namespace std;

void stringToHex(const string &srcStr, string &destStr) {

    destStr.clear();

    stringstream ss;

    for ( size_t i=0; i<srcStr.size(); i++ ) {
        ss << hex << static_cast<size_t>(srcStr[i]);
    }

    ss >> destStr;
}

int main() {

    string srcstr("Hello world!");
    string deststr;

    stringToHex(srcstr, deststr);

    cout << "\n" << deststr << "\n\n";

    //

    return 0;
}

среда, 20 ноября 2013 г.

C++. Convert hex to string

В рамках одного проекта встала задача сконвертировать hex в string. Гуглятся совершенно разные примеры и подходы. Я же хочу поделиться своим, на мой взгляд, наиболее простым и ясным решением.
#include <iostream>
#include <sstream>

using namespace std;

void hexToString(const string &srcStr, string &destStr) {

    if ( srcStr.size() < 2 ) {
        return;
    }

    destStr.clear();

    stringstream ss;
    size_t asciiCode = 0;

    for ( size_t i=1; i<srcStr.size(); i+=2 ) {

        ss << hex << srcStr.substr(i-1, 2);
        ss >> asciiCode;

        destStr.push_back(static_cast<char>(asciiCode));

        ss.clear();
    }
}

int main() {

    string srcstr("48656C6C6F20776F726C6421");
    string deststr;

    hexToString(srcstr, deststr);

    cout << "\n" << deststr << "\n\n";

    //

    return 0;
}

понедельник, 18 ноября 2013 г.

Релиз reup-1.1.2

Изменения в данной версии обеспечивают копирование всех файлов из каталогов hex и mpk при публикации репозитория. Ранее копировались только *.hex и *.mpk соответственно.
Исходный код доступен ЗДЕСЬ.

воскресенье, 17 ноября 2013 г.

Релиз reup-1.1.1

Некоторое время назад я решил переписать на C++ скрипт perl, созданный когда-то для автоматизации поддержки репозитория файлов для ЭБУ. Программа имеет консольный интерфейс с меню и активно работает с файловой системой, использует библиотеки boost. Несмотря на то, что reup (так я назвал свое произведение) "заточена" под конкретные условия и особенности организации работы, она может быть легко адаптирована и под другие аналогичные задачи благодаря доступным исходным кодам (reup распространяется на условиях GPL v3) и очень простой внутренней структуре.
Возможности текущей версии следующие:
  1. Триммирование hex-файлов с помощью внешней утилиты (задается в файле конфигурации);
  2. Архивирование оттримленных hex-файлов (архиватор и параметры архивации задаются в файле конфигурации);
  3. Обновление репозитория с заменой старых версий hex- и mpk-файлов их обновленными вариантами;
  4. Очистка директории утилиты trimhex (директория и расширения файлов, подлежащих удалению задаются в файле конфигурации);
  5. Публикация репозитория (файлы и каталоги локальной копии копируются по указанному в файле конфигурации адресу);
  6. Архивирование локальной копии репозитория.
Исходные код доступен ЗДЕСЬ.

суббота, 16 ноября 2013 г.

Релиз r49-16112013



Версии компонентов:
  • libtoxic v7.5.2
  • cr49 v1.3.0
  • Qr49 v3.11.0
Изменения:
  1. Qr49: Добавлена возможность просмотра статистической информации по выделенным ячейкам в таблицах с исходными данными (количество элементов, сумма, минимальное значение, максимальное значение, среднее).

вторник, 5 ноября 2013 г.

Релиз r49-05112013



Версии компонентов:
  • libtoxic v7.5.1
  • cr49 v1.3.0
  • Qr49 v3.10.3
Изменения:
  1. libtoxic: внесены коррективы в расчет приведенной мощности;
  2. libtoxic: исправлена ошибка, приводившая, при определенной комбинации исходных данных, к выводу "мусора" в отчет html;
  3. Qr49: улучшена логика работы кнопки "Копировать (НАМИ)" в диалоге "Отладочные данные";
  4. Qr49: внесены коррективы в функцию формирования данных в буфере обмена для вставки в отчет "НАМИ".