Russian Qt Forum

Qt => Общие вопросы => Тема начата: merke от Март 06, 2012, 17:58



Название: Вопрос по организации структуры данных
Отправлено: merke от Март 06, 2012, 17:58
Всем привет. Начну с предусловия. Есть Qt приложение, есть php скрипт. php скрипт будет формировать данные следующего вида,
1) заголовок: там будут следующие поля NAME = имя, DATE = Дата и в таком вот духе.
2) наборы свойств, их может быть множество

старт = ид. свойства
наименование = наименование_свойства
значение = либо просто строка либо массив байт, может быть картинка
стоп = ид. свойства
....

старт = ид. свойства
наименование = наименование_свойства
значение = либо просто строка либо массив байт, может быть картинка
стоп = ид. свойства

....

старт = ид. свойства
наименование = наименование_свойства
значение = либо просто строка либо массив байт, может быть картинка
стоп = ид. свойства

Вот как бы это всё поудобнее организовать. Просто пообсуждать. хочу поучиться в построении таких вот структур данных. Заголовок будет всегда один. Все данные представлены в виде двумерной таблице, что то на подобии QList<QPair<QByteArray, QByteArray> > т.е. идет наименование и значение, и так выстраивается двумерная таблица, вот php скрипт должен мне это передать в виде простого набора байт, а я должен разобрать всё это и превратить в QList<QPair<QByteArray, QByteArray> >.

Всё бы хорошо, вот только смущает массив байт. если бы была простая строка, то можно просто в файл писать построчно и всё это считывать. Но вот когда массив байт я немного в ступор.


Название: Re: Вопрос по организации структуры данных
Отправлено: Bepec от Март 06, 2012, 22:34
Ну массив байт это та же строка, только в другом представлении. Главное учесть кодировку.

Напомню - у QString есть конструктор из QByteArray.


Название: Re: Вопрос по организации структуры данных
Отправлено: BuRn от Март 07, 2012, 12:28
Цитировать
старт = ид. свойства
наименование = наименование_свойства
значение = либо просто строка либо массив байт, может быть картинка
стоп = ид. свойства
ну вот если только это. т.е. ключевых поля всего 4, создай структуру типа
struct MyStruct{
int id_start;
QString name;
QVariant value;
int id_stop;
};
Дальше так как у тебя будет таких свойств много сделай вектор указателей на нее в которой и будешь хранить все данные
std::vector <MyStruct *> recs;
Ну и дальше я думаю понятно ...


Название: Re: Вопрос по организации структуры данных
Отправлено: Rem Norton от Март 07, 2012, 14:55
QVariantMap