Перейти до основного вмісту

QString в HEX и обратно

Спочатку з QString робимо QByteArray. Зауважимо, якщо у вас по тексту тільки латинські букви цілком підійде варіант з .toUtf8(). Якщо ж присутня і кирилиця - обов'язково використовуємо .toLocal8Bit().


QString strA = "Some text";
QByteArray bA = strA.toLocal8Bit().toHex();


Перетворення QByteArray в початковий текст має такий вигляд:


QString strB = QString::fromLocal8Bit(QByteArray::fromHex(bA)));


Цікаво, що якщо ми для зберігання записали отриманий Нех куди-небудь,
наприклад, в файл або базу даних у вигляді текстового рядка, то для зворотного перетворення
цей рядок потрібно додатково перетворити в QByteArray.


QString strA2 = QString::fromUtf8(bA);
QByteArray bB = strA2.toUtf8();
QString strB = QString::fromLocal8Bit(QByteArray::fromHex(bB)));

Коментарі

Популярні дописи з цього блогу

Драйвер MySQL для Qt (Linux)

Для того проекту, де був потрібен доступ до БД MySQL, прийшов час реалізуватися в Linux. Але після переносу файлів, виникла та ж проблема - драйвер. Базова система Ubuntu 11.04 і сервер БД MySQL 5.1.???. Первинних файлів бази даних, як звичайно це буває, у мене не виявилося, тому викачав ось звідси: http://download.softagency.net/mysql/Downloads/ Розпаковуємо куди завгодно, скажімо в /home/mysql. Запускаємо термінал та переходимо туди де встановлено Qt в: /QtSDK/Desktop/Qt/версія ???/gcc/bin/qmake -o Makefile «INCLUDEPATH+=/home/mysql/usr/include/mysql» «LIBS+= -L /home/mysql/usr/lib/mysql -lmysqlclient» mysql.pro make Якщо все пройшло добре копіюємо із /QtSources/4.7.3/src/plugins/sqldrivers/mysql/ файл libqsqlmysql.so в /QtSDK/Qt/4.7.3/gcc/plugins/sqldrivers/ ****** Редакція 2017 року ******* Ubuntu 16.04 LTS 64-bit Qt 5.8 MySql 5.5.53 - http://download.softagency.net/mysql/Downloads/MySQL-5.5/MySQL-devel-5.5.53-1.linux2.6.x86_64.rpm розпакований в /home/ev/Downlo

Qt та Excel. Робота з книгами і листами.

Тема Qt та Excel виявилася досить актуальною, тому спробую розвинути питання про доступ до даних .xls файлу використовуючи ActiveQt. Оголошення змінних: QAxObject *excel; //Excel QAxObject *wbook; //Workbooks QAxObject *book; // Активная книга QAxObject *sheets; //Листы QAxObject *activeSheet;//Активный лист Запуск Excel: excel = new QAxObject("Excel.Application",this); excel->setProperty("Visible", 0); excel->setProperty("DisplayAterts",0); wbook = excel->querySubObject("Workbooks"); sheets = book->querySubObject("Sheets"); activeSheet = book->querySubObject("ActiveSheet"); Закриття Excel: wbook->dynamicCall(“Close()”); excel->dynamicCall(“Quit()”); delete excel; // так напевно Excel не буде висіти в процесах. Створення нової книги: wbook->dynamicCall(Add()); Відкриття існуючої книги: book = wbook->dynamicCall(“Open(const QString&)”, filename); Збереження: wbook-&g