[Код] Примеры синтаксиса кода

Модераторы: Bagir, Ivan, Vit, immortal, PAV, newz20

fandaymon
Сообщения: 569
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 24 раза
Поблагодарили: 246 раз

Re: Примеры синтаксиса кода

Сообщение fandaymon » Вс авг 26, 2018 1:28 am

xor писал(а):
Вс авг 26, 2018 1:19 am
Попробуйте
GetNumberWord(-25,array('градус','градуса','градусов'))
GetNumberWord(25.8,array('градус','градуса','градусов'))
25.8 вроде правильно возвращает - градусов
А с минусовой температурой надо abs делать
Logrus
Сообщения: 1123
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 224 раза
Поблагодарили: 169 раз

Re: Примеры синтаксиса кода

Сообщение Logrus » Вс авг 26, 2018 1:40 am

fandaymon писал(а):
Вс авг 26, 2018 12:54 am
Самое смешное, что давно уже есть встроенная функция для склонения чисел - GetNumberWord().

GetNumberWord($x,array('день','дня','дней'))
GetNumberWord($x,array('градус','градуса','градусов'))
тема не новые функции в мдм, а примеры, коих много набросали
и в комментах по ссылке про это говорили ;)

я изменения просматриваю )))

п.с. надо б функциями своими пообмениваться, с описанием что зачем
в тлг писал про фильтры, выхлоп существенный
т.е. даже не сама функция, а изменился подход/хранение данных, построение с них графиков и т.д.
Последний раз редактировалось Logrus Вс авг 26, 2018 1:47 am, всего редактировалось 1 раз.
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо - ТАМ =>
connect Raspberry Pi3, с образа от Сергея 3.31, PHP 7
Аватара пользователя
xor
Сообщения: 766
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 49 раз
Поблагодарили: 192 раза

Re: Примеры синтаксиса кода

Сообщение xor » Вс авг 26, 2018 1:43 am

:D https://majordomo.smartliving.ru/forum/ ... 53#pr85942
обновил для работы с отрицательными числами
За это сообщение автора xor поблагодарил:
ZyaK (Пн авг 27, 2018 7:17 am)
Рейтинг: 1.37%
ZyaK
Сообщения: 184
Зарегистрирован: Вт окт 24, 2017 2:01 pm
Откуда: Ижевск
Благодарил (а): 23 раза
Поблагодарили: 20 раз

Re: Примеры синтаксиса кода

Сообщение ZyaK » Пн авг 27, 2018 7:15 am

Ладно, со склонениями градусов разобрался, осталось понять почему говорит температура воды тридцать градусов, температура масла ДВАДЦАТИ ДЕВЯТИ градусов, пробовал датчик нагревать
говорит температура воды тридцать один градус, температура масла ТРИДЦАТИ ОДНОГО градус.
то есть склоняет правильно, а вот числа говорит не так как надо.

нет ли способа в один код запихать несколько "Say" с какой нибудь задержкой?
типа
получить температуру воды, вставить правильное окончание
Say температура воды
получить температуру масла, вставить правильное окончание
Say температура масла
и тд...

если пишу так, то числа говорит правильно "температура воды тридцать, температура масла двадцать девять"

Код: Выделить всё

 
 $O=gg("Котел.Oil_actual");
 $W=gg("Котел.Water_actual");
 $P=gg("Котел.Pressure");
Say("температура ". "воды ". $W ."". ", температура ". "масла ".  $O ,2);
//}

Ура!!! победил!!! надо ей точки и запятые походу ставить, только с ними нормально заговорила

Код: Выделить всё

Say('Температура воды'.' '. $W.' '. GetNumberWord($W,array('градус.','градуса.','градусов.')) .' '. "Масла".' '.  $O.' '. GetNumberWord($O,array('градус','градуса','градусов')),2);
или вот с тире, тире не произносит :)

Код: Выделить всё

Say('Температура воды'. '- '. $W. ' '. GetNumberWord($W,array('градус.','градуса.','градусов.')). ' '. "Температура масла". '- '. $O. ' '. GetNumberWord($O,array('градус.','градуса.','градусов.')). ' '. "Давление". '- '. $P. ' '. GetNumberWord($P,array('килограмм.','килограмма.','килограммов.')),2);
PI2 + MQTT + 5 ESP8266 + Atmega16
Аватара пользователя
xor
Сообщения: 766
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 49 раз
Поблагодарили: 192 раза

Re: Примеры синтаксиса кода

Сообщение xor » Вт авг 28, 2018 1:10 am

чего-то шаманство какое-то.
Так то проще же -

Код: Выделить всё

say('температура воды - '.mynum2str($W,'градус','градуса','градусов',0).', температура масла - '.mynum2str($O,'градус','градуса','градусов',0),2);
- и с тире и от движка не зависит, если надо отрицатетельное число озвучит, но для этой задачи- да, вода меньше 0 не бывает.
А для температуры воздуха зимой другую функцию будете использовать или для проговаривания не забудите по модулю взять?
ZyaK
Сообщения: 184
Зарегистрирован: Вт окт 24, 2017 2:01 pm
Откуда: Ижевск
Благодарил (а): 23 раза
Поблагодарили: 20 раз

Re: Примеры синтаксиса кода

Сообщение ZyaK » Вт авг 28, 2018 6:25 am

xor писал(а):
Вт авг 28, 2018 1:10 am
Так то проще же -

Код: Выделить всё

say('температура воды - '.mynum2str($W,'градус','градуса','градусов',0).', температура масла - '.mynum2str($O,'градус','градуса','градусов',0),2);
А для температуры воздуха зимой другую функцию будете использовать или для проговаривания не забудите по модулю взять?
Так вообще ничего не говорит, до зимней температуры я ещё не добрался :D умный дом пока валяется на столе на работе, а настоящий дом ещё строится, ну к тому времени думаю уже поднатаскаюсь
PI2 + MQTT + 5 ESP8266 + Atmega16
Аватара пользователя
xor
Сообщения: 766
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 49 раз
Поблагодарили: 192 раза

Re: Примеры синтаксиса кода

Сообщение xor » Ср авг 29, 2018 1:54 am

ZyaK писал(а):
Вт авг 28, 2018 6:25 am
Так вообще ничего не говорит, до зимней температуры я ещё не добрался :D умный дом пока валяется на столе на работе, а настоящий дом ещё строится, ну к тому времени думаю уже поднатаскаюсь
Чтобы так заговорила, нужно функции mynum2str и morph поместить в файл своих функций типа \htdocs\lib\my_funcs.php и рестарт МЖД
ZyaK
Сообщения: 184
Зарегистрирован: Вт окт 24, 2017 2:01 pm
Откуда: Ижевск
Благодарил (а): 23 раза
Поблагодарили: 20 раз

Re: Примеры синтаксиса кода

Сообщение ZyaK » Чт авг 30, 2018 7:41 am

Да, файл создавал, функции туда копировал, черт его знает почему не заработало.
ну да и чёрт с ним, сейчас у меня циклы начали двоиться какого то черта, не могу найти где и как победить :?
PI2 + MQTT + 5 ESP8266 + Atmega16
Ответить