Russian Qt Forum
Ноябрь 24, 2024, 02:00 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как в код внедрить что-то типа xml?  (Прочитано 2547 раз)
juvf
Программист
*****
Offline Offline

Сообщений: 570


Просмотр профиля
« : Январь 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 файле или еще в каком инклуде и потом для добавления/редактирования списка девайсов просто править этот аш?

Записан
alex312
Хакер
*****
Offline Offline

Сообщений: 606



Просмотр профиля
« Ответ #1 : Январь 12, 2011, 11:40 »

а ты уверен что для контроллера есть STL ? да и С++ вообще  Непонимающий
Записан
juvf
Программист
*****
Offline Offline

Сообщений: 570


Просмотр профиля
« Ответ #2 : Январь 12, 2011, 13:13 »

уверен. пол проги написал на с++ с использованием stl.
Проблему решил. Написал *.h. В нем определил константные масивы и параметрами девайсов. Написал короткий парсер, который из этого h файла создает желаемое дерево объектов.

Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.078 секунд. Запросов: 22.