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

Блок позволяет экономить оперативную память МК при использовании констант.

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

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

#1

Сообщение Phazz » 22.02.2022{, 09:17}

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

Аватара пользователя
Di123
Капитан
Сообщения: 828
Зарегистрирован: 03.11.2018{, 19:38}
Репутация: 29
Имя: Дмитрий

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

#2

Сообщение Di123 » 23.02.2022{, 04:39}

копирую блок и пишу второй текст в него но этот же текст меняется и в первом блоке да и вообще во всех
как будто этот блок можно использовать только один раз

aidar_i
Полковник
Сообщения: 3120
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 674
Откуда: Уфа
Имя: Айдар
Контактная информация:

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

#3

Сообщение aidar_i » 23.02.2022{, 06:38}

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

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

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

#4

Сообщение Phazz » 23.02.2022{, 08:40}

Di123, спасибо, исправлю

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

Аватара пользователя
Di123
Капитан
Сообщения: 828
Зарегистрирован: 03.11.2018{, 19:38}
Репутация: 29
Имя: Дмитрий

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

#5

Сообщение Di123 » 25.02.2022{, 05:32}

неработает
2022-02-25_093148.png
F macro_1.1.flp
(189.86 КБ) 51 скачивание

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

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

#6

Сообщение Phazz » 25.02.2022{, 09:05}

Di123, так нельзя складывать, нужно ставить вперед переменную
2022-02-25_11-04-25.png
2022-02-25_11-04-25.png (4.18 КБ) 4443 просмотра

Аватара пользователя
Di123
Капитан
Сообщения: 828
Зарегистрирован: 03.11.2018{, 19:38}
Репутация: 29
Имя: Дмитрий

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

#7

Сообщение Di123 » 25.02.2022{, 10:42}

вставляю текст и не компилирует
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"
}
]

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

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

#8

Сообщение Phazz » 25.02.2022{, 10:54}

А кавычки экранировать?

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

Аватара пользователя
Di123
Капитан
Сообщения: 828
Зарегистрирован: 03.11.2018{, 19:38}
Репутация: 29
Имя: Дмитрий

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

#9

Сообщение Di123 » 25.02.2022{, 11:20}

это для эксперемента попробовал вставить джсон документ в него посмотреть насколько он сожмёт его
судя по вашим скринам я так понял он внутри себя как бы убирает одинаковые значения и как бы в дальнейшем подставляет их где надо внутри себя

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

Аватара пользователя
Di123
Капитан
Сообщения: 828
Зарегистрирован: 03.11.2018{, 19:38}
Репутация: 29
Имя: Дмитрий

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

#10

Сообщение Di123 » 25.02.2022{, 19:19}

А можно к нему приделать вход что бы из веба можно было через него пропускать данные ?

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

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

#11

Сообщение Dryundel » 25.02.2022{, 20:00}

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

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

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

#12

Сообщение Phazz » 25.02.2022{, 20:37}

Да все верно, эти данные записываются только на этапе написания программы и больше не меняются.

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

Ответить

Вернуться в «Работа со строками»