Подстановка имени переменой
- Войдите на сайт для отправки комментариев
Пт, 18/03/2016 - 20:14
Здравствуйте уважаемые, помогите неразумному.
Задача следующая. Есть некий "конфиг" файл, данные в котором хранятся в секциях. В коде существует переменная типа String в которой хранятся имена секций:
String split[10]={"color","thermostat","delta","dallas","", и т.д};
Также в коде существуют переменные, имена которых идентичны названиям секций (хотя это не обязательно)
int color[20]; short thermostat[20][24]; byte delta_tm[20]; ... и т.д.
При чтении файла я определяю секцию, в которой нахожусь, и должен писать данные в соответствующую переменную т.е. если я в секции split[0] - должен писать в "color[]", если в split[1] -> в "thermostat[]" и т.д.
Кроме switch-case ничего на ум не приходит, подскажите как быть...
В лоб не получится, надо делать обвязку, т.к. у тебя разные типы данных в массивах хранятся (я имею в виду thermostat, delta_tm и пр.). Если грязный подход, что что-то типа этого:
Где надо - получаешь адрес массива, в который надо писать, заодно получаешь размерность его ячейки. Остальное - придётся ручками приводить/разруливать.
В общем, подходов разных много, выбирай любой :) Лично я бы сделал классами с одним абстрактным предком, где в каждом классе хранятся свои нужные данные и определена процедура вычитки данных из секции.