Страница 1 из 1

Блок F Macro - экономим ОЗУ

Добавлено: 22.02.2022{, 09:17}
Phazz
Блок позволяет экономить оперативную память МК при использовании констант.
Если использовать блок с одинаковым текстом в разных местах, то дополнительная память не расходуется.
F macro_1.0.flp
(177.39 КБ) 74 скачивания
СпойлерПоказать
Результат без блока
photo_2022-02-22_11-14-36.jpg
С блоком
photo_2022-02-22_11-14-45.jpg

Блок F Macro - экономим ОЗУ

Добавлено: 23.02.2022{, 04:39}
Di123
копирую блок и пишу второй текст в него но этот же текст меняется и в первом блоке да и вообще во всех
как будто этот блок можно использовать только один раз

Блок F Macro - экономим ОЗУ

Добавлено: 23.02.2022{, 06:38}
aidar_i
Di123 писал(а):
23.02.2022{, 04:39}
копирую блок и пишу второй текст в него но этот же текст меняется и в первом блоке да и вообще во всех
как будто этот блок можно использовать только один раз
Да это так, проверил, работает с олед дисплеем.
Пример ниже, блок подправил для многоразового использования. Текст замените на более длинный.
F macro1.flp
(140.3 КБ) 62 скачивания
С двумя блоками
F macro2.flp
(1.11 МБ) 69 скачиваний

Блок F Macro - экономим ОЗУ

Добавлено: 23.02.2022{, 08:40}
Phazz
Di123, спасибо, исправлю

Отправлено спустя 48 минут 49 секунд:
Блок обновлен:
-Теперь можно использовать не один раз
-Добавил описание

Блок F Macro - экономим ОЗУ

Добавлено: 25.02.2022{, 05:32}
Di123
неработает
2022-02-25_093148.png
F macro_1.1.flp
(189.86 КБ) 50 скачиваний

Блок F Macro - экономим ОЗУ

Добавлено: 25.02.2022{, 09:05}
Phazz
Di123, так нельзя складывать, нужно ставить вперед переменную
2022-02-25_11-04-25.png
2022-02-25_11-04-25.png (4.18 КБ) 4261 просмотр

Блок F Macro - экономим ОЗУ

Добавлено: 25.02.2022{, 10:42}
Di123
вставляю текст и не компилирует
2022-02-25_144312.png
[
{
"id": 1,
"ip": "192.168.100.17",
"volume": "1"
},
{
"id": 2,
"ip": "192.168.100.17",
"volume": "1"
},
{
"id": 3,
"ip": "192.168.100.17",
"volume": "1"
},
{
"id": 4,
"ip": "192.168.100.17",
"volume": "1"
},
{
"id": 5,
"ip": "192.168.100.17",
"volume": "1"
},
{
"id": 6,
"ip": "192.168.100.17",
"volume": "3"
},
{
"id": 7,
"ip": "192.168.100.17",
"volume": "1"
},
{
"id": 8,
"ip": "192.168.100.17",
"volume": "1"
}
]

Блок F Macro - экономим ОЗУ

Добавлено: 25.02.2022{, 10:54}
Phazz
А кавычки экранировать?

Отправлено спустя 15 минут 26 секунд:
2022-02-25_13-09-32.png

Блок F Macro - экономим ОЗУ

Добавлено: 25.02.2022{, 11:20}
Di123
это для эксперемента попробовал вставить джсон документ в него посмотреть насколько он сожмёт его
судя по вашим скринам я так понял он внутри себя как бы убирает одинаковые значения и как бы в дальнейшем подставляет их где надо внутри себя

спасибо попробую

Блок F Macro - экономим ОЗУ

Добавлено: 25.02.2022{, 19:19}
Di123
А можно к нему приделать вход что бы из веба можно было через него пропускать данные ?

Блок F Macro - экономим ОЗУ

Добавлено: 25.02.2022{, 20:00}
Dryundel
Di123 писал(а):
25.02.2022{, 19:19}
А можно к нему приделать вход что бы из веба можно было через него пропускать данные ?
Di123, это не фильтр и не шифратор, а скорее упаковщик типа WinRar.
Это всего лишь макрос, который позволяет компактно хранить стринговые данные, создаваемые при написании программы(скетча).
С помощью F() макроса строковые данные упаковываются во флэш память. Условно говоря, строки сохраняются фрагментами и если встречаются совпадающие фрагменты, они второй раз не записываются. При необходимости использования, фраза (слово) генерируется из этих фрагментов. Все это не совсем так, но упрощенно, для понимания процесса, лучше не скажешь.
К стати, не все функции (а значит и блоки) умеют работать с этим макросом.

Блок F Macro - экономим ОЗУ

Добавлено: 25.02.2022{, 20:37}
Phazz
Да все верно, эти данные записываются только на этапе написания программы и больше не меняются.

Отправлено спустя 4 минуты 53 секунды:
Di123, да и смысла это не имеет, вы все равно возьмёте данные из глобальной переменной. Так не проще ли эти данные писать напрямую