Russian Qt Forum

Программирование => С/C++ => Тема начата: juvf от Январь 12, 2011, 07:47



Название: Как в код внедрить что-то типа xml?
Отправлено: juvf от Январь 12, 2011, 07:47
Есть задача - создать список, например, из объектов Device.

Код:
class Device
{
public:
       Device();
       std::string name;
       int id;
       std::list<Device*> deviceList;
}

Под windows(*nix) пишется одна функция Device* createDevice(...), и пишется какой-нибудь файл, типа xml, с описанием всех девайсов которые должны быть в списке. createDevice парсит этот файл и создает нужный список. если нужно добавить девайс в список или изменить праметр, то просто правится *.xml файл, а код остается неизменный.

Теперь стоит таже задача, тока для микроконтроллера у которого есть только память программ и озу. Нет ос и нет файловой системы. Можно конечно в коде жёстко написать создание этого списка, типа

Код:
std::list<Device*> list;
list.push_back(createDevice1());
list.push_back(createDevice2());
list.push_back(createDevice3());
list.push_back(createDevice4());
....
list.push_back(createDevice50());
каждая функция по созданию объекта ( createDevice*() ) будет уникальна. В каждой функции createDevice* будет создаваться свой список deviceList. Вобщем код получится очень грамоздкий. Да и добавлять девайсы в список, править параметры достаточно сложно, придётся править исходный код.
Хотелось бы написать, как и в случае для Windows, одну функции по созданию девайсов, и ..... как бы в код внедрить что-то типа xml? Как то можно описать это дерево как-то в *.h файле или еще в каком инклуде и потом для добавления/редактирования списка девайсов просто править этот аш?



Название: Re: Как в код внедрить что-то типа xml?
Отправлено: alex312 от Январь 12, 2011, 11:40
а ты уверен что для контроллера есть STL ? да и С++ вообще  ???


Название: Re: Как в код внедрить что-то типа xml?
Отправлено: juvf от Январь 12, 2011, 13:13
уверен. пол проги написал на с++ с использованием stl.
Проблему решил. Написал *.h. В нем определил константные масивы и параметрами девайсов. Написал короткий парсер, который из этого h файла создает желаемое дерево объектов.