Конвертер String >> Boolean

Пользовательские блоки для конвертации различных типов данных, а так-же шифрования и дешифровки
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Аватара пользователя
Dryundel
Подполковник
Сообщения: 1343
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 420
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Конвертер String >> Boolean

#1

Сообщение Dryundel » 07.10.2021{, 16:36}

Конвертер String >> Boolean
.
String-Boolean.jpg
Конвертер_String____Bool_(Code_-_Professional).ubi
.
Конвертирует строковую переменную в Boolean.
При наличии на входе "0" - на выходе логический ноль.
В других случаях логическая единица.
Актуален при работе с MQTT

Расширенная версия блока
.
String-Boolean(расширенный).jpg
String-Boolean(расширенный).flp
.
В расширенной версии добавлен параметр выбора логики:
- В случае проверки на ноль, - при "0" на входе, на выходе будет логический ноль,
во всех других случаях на выходе будет логическая единица.
- В случае проверки на единицу, - при "1" на входе, на выходе будет логическая единица,
во всех других случаях на выходе будет логический ноль.

Блок не создает дополнительных переменных и имеет короткий код.

Спасибо всем, кто принял участие в дискуссии.
.
Для скачивания вложений Вы должны быть зарегистрированы.
Последний раз редактировалось Dryundel 08.10.2021{, 12:55}, всего редактировалось 1 раз.
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

alexbonk
Рядовой
Сообщения: 28
Зарегистрирован: 05.10.2021{, 13:29}
Репутация: 1
Имя: алексей

Конвертер String >> Boolean

#61

Сообщение alexbonk » 08.10.2021{, 10:52}

alexbonk писал(а):
08.10.2021{, 10:48}
булеан и другие сейчас можно отправить сразу в веб интерфейс?
Dryundel,
как?
или в 7-8 версиях возможно?

Аватара пользователя
Phazz
Полковник
Сообщения: 1776
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 156
Откуда: Сургут
Имя: Анатолий

Конвертер String >> Boolean

#62

Сообщение Phazz » 08.10.2021{, 11:00}

Dryundel писал(а):
08.10.2021{, 10:47}
150 байт памяти с каждого блока? Не плохой результат будет при 50 каналах управления. :)
занимаемая память растет не пропорционально количеству блоков.
Хорошо запомню, если у меня на есп закончится память я знаю как ее немного сэкономить )

Отправлено спустя 2 минуты 20 секунд:
Хотя наш спор начинался с того что нужно четкое условие на включение и не на отключение

alexbonk
Рядовой
Сообщения: 28
Зарегистрирован: 05.10.2021{, 13:29}
Репутация: 1
Имя: алексей

Конвертер String >> Boolean

#63

Сообщение alexbonk » 08.10.2021{, 11:06}

Dryundel писал(а):
08.10.2021{, 10:54}
Вы не внимательный и очень занудный человек, на мой взгляд
вы так и не ответили по веб интерфейсу

alexbonk
Рядовой
Сообщения: 28
Зарегистрирован: 05.10.2021{, 13:29}
Репутация: 1
Имя: алексей

Конвертер String >> Boolean

#64

Сообщение alexbonk » 08.10.2021{, 11:09}

т.е. чтобы включить 50 пинов, нужно проверить 50 стринговых переменных? все верно?

это нужно делать в каждой итерации? ведь пины напрямую подключены же будут. т.е. условий проверки не задать?

Отправлено спустя 5 минут 25 секунд:
Dryundel писал(а):
08.10.2021{, 10:54}
пустой болтовни
Dryundel писал(а):
08.10.2021{, 10:54}
козявки то выковыриваете
Dryundel писал(а):
08.10.2021{, 10:54}
пустобрехом
Dryundel писал(а):
08.10.2021{, 10:54}
очень занудный
Dryundel писал(а):
08.10.2021{, 10:54}
не внимательный
весомые аргументы

Отправлено спустя 2 минуты 30 секунд:
Dryundel писал(а):
07.10.2021{, 18:59}
Мне нравятся все эти правильные вопросы. Всегда рад, аргументированно отвечать за свою работу
радость и аргументы только пропали куда-то....ну да ладно

Отправлено спустя 7 минут 32 секунды:
Phazz писал(а):
07.10.2021{, 18:42}
Наверное лучше будет если 0 это 0 а 1 это 1. Тем более включать 1 при любых данных вообще не очень решение
как я понял: по аналогии с пинами:
если 0 то 0.
если на пине напряжение 0.5, 1.0, 3.0, 5.0 т.е. выше 0, то true.

Но на пинах от мусора/наводок защищает подтяжка. А в стринге нас что защищает?

Аватара пользователя
Dryundel
Подполковник
Сообщения: 1343
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 420
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Конвертер String >> Boolean

#65

Сообщение Dryundel » 08.10.2021{, 11:59}

Phazz писал(а):
08.10.2021{, 10:21}
А чем ваш вариант лучше этого?
2021-10-08_12-20-40.png
Вы не поверите, но этот вопрос я уже обсуждал в личке. :) Параллельно.
Вот небольшая часть из этой беседы.
Кстати, а почему Вы решили использовать == вместо equals? Суть то та же самая. И в коде разницы практически не было.
Это только на первый взгляд.
Мне требовалось отличие от "0" т.е. необходимо сравнение с нолем и только в случае равно выдавать на выход низкий уровень. А equals в случае равенства возвращает "1".
Можно конечно инвертировать, типа так:
В = !(myString.equals("0"));
Но отрицание это еще одна логическая операция для процессора.
Отправлено спустя 47 минут 36 секунд:
Phazz писал(а):
08.10.2021{, 11:02}
Хорошо запомню, если у меня на есп закончится память я знаю как ее немного сэкономить )
Очень рад, что помог и Вам открыть для себя что то новое.
Phazz писал(а):
08.10.2021{, 11:02}
Хотя наш спор начинался с того что нужно четкое условие на включение и не на отключение
Какой логикой руководствовался и почему сделал именно так я подробно изложил в процессе дискуссии.

Исходя из данного спора, допилил блок и теперь у него есть настройка выбора логики.
- В случае проверки на ноль, при "0" на входе, на выходе будет логический ноль,
во всех других случаях на выходе будет логическая единица.
- В случае проверки на единицу, при "1" на входе, на выходе будет логическая единица,
во всех других случаях на выходе будет логический ноль.
String-Boolean(расширенный).jpg
String-Boolean(расширенный).flp
.
Идя на встречу пожеланиям выкладываю в формате проекта .flp

Отправлено спустя 10 часов 12 минут 7 секунд:
Господа! Меня осенило! :smile171:
Я готов согласится с тем, что логика при которой только при "0" на выходе должен быть ноль имеет изъян.
Phazz, Rovki, Naladchik, alexbonk, были отчасти правы!
Однако ни кто из них не привел главного, основного аргумента, с которым я наверняка бы согласился.
Парадокс, но проблема лежит на самой поверхности, но ни кто, в том числе и я ее не разглядели. :smile171:
А ведь это весьма значимый дефект, хотя банален до безобразия.
Оставлю ответ до завтра. А вдруг кто то еще увидит.
Было бы интересно услышать версии.
:)
Всем спокойной ночи.
Для скачивания вложений Вы должны быть зарегистрированы.
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

Аватара пользователя
Phazz
Полковник
Сообщения: 1776
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 156
Откуда: Сургут
Имя: Анатолий

Конвертер String >> Boolean

#66

Сообщение Phazz » 09.10.2021{, 09:42}

Пустая строка == 1?

Аватара пользователя
Dryundel
Подполковник
Сообщения: 1343
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 420
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Конвертер String >> Boolean

#67

Сообщение Dryundel » 09.10.2021{, 10:50}

Phazz писал(а):
09.10.2021{, 09:42}
Пустая строка == 1?
Бинго! :)
При любом запуске или ребуте на выходе повиснет логическая единица, а это ну совсем не гут.
Можно конечно во водном блоке сделать предустановку выхода, но это же надо обязательно знать, не забывать и влезать в редактирование.
А приравнять пустую строку к "0" в конвертере, тоже не правильно.
Поэтому оба варианта логики вполне равноценны и имеют свои преимущества и недостатки.

Всем спасибо за продуктивную дискуссию.

Отправлено спустя 14 минут 24 секунды:
"Именно самые простые истины человек постигает позже всего."
© Людвиг Фейербах 
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

alexbonk
Рядовой
Сообщения: 28
Зарегистрирован: 05.10.2021{, 13:29}
Репутация: 1
Имя: алексей

Конвертер String >> Boolean

#68

Сообщение alexbonk » 09.10.2021{, 12:08}

alexbonk писал(а):
07.10.2021{, 21:19}
например в момент ребута

Ответить

Вернуться в «Конвертация типов, шифраторы и дешифраторы»