Помогите облагородить безобразие!
- Войдите на сайт для отправки комментариев
Вс, 25/03/2018 - 23:19
Добрый всем денёк! Помогите облагородить это безобразие... Оно жутко мозолит мне глаза и совершенно не поддается быстрому редактированию! Вроде понимаю что все это как-то нужно запихнуть в цикл for, но я уже весь мозг себе сломал!!!
void handle_Schedul() { int h01, m01, h02, m02, h03, m03, h04, m04, h05, m05, h06, m06, h07, m07, h08, m08, h09, m09, h10, m10; if (HTTP.arg("h01") != "") { h01 = HTTP.arg("h01").toInt(); if(h01 <= 23) { EEPROM.write(1, h01); } } if (HTTP.arg("m01") != "") { m01 = HTTP.arg("m01").toInt(); if(m01 <= 59) { EEPROM.write(2, m01); } } if (HTTP.arg("h02") != "") { h02 = HTTP.arg("h02").toInt(); if(h02 <= 23) { EEPROM.write(3, h02); } } if (HTTP.arg("m02") != "") { m02 = HTTP.arg("m02").toInt(); if(m02 <= 59) { EEPROM.write(4, m02); } } if (HTTP.arg("h03") != "") { h03 = HTTP.arg("h03").toInt(); if(h03 <= 23) { EEPROM.write(5, h03); } } if (HTTP.arg("m03") != "") { m03 = HTTP.arg("m03").toInt(); if(m03 <= 59) { EEPROM.write(6, m03); } } if (HTTP.arg("h04") != "") { h04 = HTTP.arg("h04").toInt(); if(h04 <= 23) { EEPROM.write(7, h04); } } if (HTTP.arg("m04") != "") { m04 = HTTP.arg("m04").toInt(); if(m04 <= 59) { EEPROM.write(8, m04); } } if (HTTP.arg("h05") != "") { h05 = HTTP.arg("h05").toInt(); if(h05 <= 23) { EEPROM.write(9, h05); } } if (HTTP.arg("m05") != "") { m05 = HTTP.arg("m05").toInt(); if(m05 <= 59) { EEPROM.write(10, m05); } } if (HTTP.arg("h06") != "") { h06 = HTTP.arg("h06").toInt(); if(h06 <= 23) { EEPROM.write(11, h06); } } if (HTTP.arg("m06") != "") { m06 = HTTP.arg("m06").toInt(); if(m06 <= 59) { EEPROM.write(12, m06); } } if (HTTP.arg("h07") != "") { h07 = HTTP.arg("h07").toInt(); if(h07 <= 23) { EEPROM.write(13, h07); } } if (HTTP.arg("m07") != "") { m07 = HTTP.arg("m07").toInt(); if(m07 <= 59) { EEPROM.write(14, m07); } } if (HTTP.arg("h08") != "") { h08 = HTTP.arg("h08").toInt(); if(h08 <= 23) { EEPROM.write(15, h08); } } if (HTTP.arg("m08") != "") { m08 = HTTP.arg("m08").toInt(); if(m08 <= 59) { EEPROM.write(16, m08); } } if (HTTP.arg("h09") != "") { h09 = HTTP.arg("h09").toInt(); if(h09 <= 23) { EEPROM.write(17, h09); } } if (HTTP.arg("m09") != "") { m09 = HTTP.arg("m09").toInt(); if(m09 <= 59) { EEPROM.write(18, m09); } } if (HTTP.arg("h10") != "") { h10 = HTTP.arg("h10").toInt(); if(h10 <= 23) { EEPROM.write(19, h10); } } if (HTTP.arg("m10") != "") { m10 = HTTP.arg("m10").toInt(); if(m10 <= 59) { EEPROM.write(20, m10); } } EEPROM.commit(); }
Обычно часто повторяющиеся одинаковые действия выполняются при помощи функций тогда ваш код будет чутка покороче. Если конечно вы про это спашивали.
прямо здесь на сайте про это очень хорошо написано http://arduino.ru/Reference/FunctionDeclaration
Все верно, спрашивал именно про это... ну во первых оно итак уже в функции, но это не важно, я не об этом...
Меня беспокоит то, что все входящие данные являются String-ами, если бы они были числовыми переменными, я бы давно уже назначил функцию и отправлял бы эти входящие как параметры для функции, а вот как в таком случае оперировать String-ами никак не соображу!!!!
команда (toInt()) преводит чар в инт у вас оно все преобразуется в инт. а потом (
if
(h01 <= 23)) это уже действие над инт
Наверное как-то вот так пойдет:
А как тогда контролировать пустую строку? Я с помощью
различаю пустую строку от строки с числом 0
в моем коде это принципиально важно
А вот и не все преобразуется. Как я уже написал выше, преобразуются строки в которых есть данные, а строки "пустые" отсекаются с помощью
Ну еще один if() по образцу можете же накатать. Так-то у вас и отрицательные значения не контролировались. А они легко превращаются в 255, 250 и т.д.
То есть в массив я должен отправить только те строки, которые не пусты, верно?
Кстати насчет отрицательных значений спасибо, про них я совсем забыл)
ААААА!!!!! ВСЕЕЕЕ!!!! ДОШЛООООО!!!!!! СПАСИБО!!!
Я же могу прям в цикле for проверять пустая ли строка)))) ТОЧНО!!!