Есть имя файла, переведенное в QByteArray.
Есть содержимое файла в QByteArray.
Как добавить имя файла, затем содержимое в единый QByteArray, чтобы их можно было потом распарсить?
Создание:
QByteArray create(const QByteArray &fname, const QByteArray &fdata) {
QByteArray data;
QBuffer buffer(&data);
buffer.open(QIODevice::WriteOnly);
QDataStream stream(&buffer);
stream << fname << fdata;
return data;
}
Парсинг:
void parse(QByteArray &data, QByteArray &fname, QByteArray &fdata) {
QBuffer buffer(&data);
buffer.open(QIODevice::ReadOnly);
QDataStream stream(&buffer);
stream >> fname >> fdata;
}
QDataStream внесёт в буфер два QByteArray раздельно. Можно без проблем сохранять одинаковые типы Qt-контейнеров, поскольку каждый так или иначе сохраняет свой собственный размер автоматом при сериализации.
QByteArray fileContent;
...
fileContent.prepend(fileName);
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости