Страница 1 из 2
Разбор содержимого строки
Добавлено: 12 янв 2019, 20:13
Ingwar
Блок для вычленения нужной информации между заданным разделителем из СМС, с СОМ порта или SD.
Содержит 5 выходов.
На пример строка на входе
jjjeee123;1r23;234;we;asd;5;7775 в качестве разделителя выбран символ ";"
На выходах блока будут соответственно:
1r23
234
we
asd
5
Структура очень простая и легко можете переделать на большее или меньшее кол-во.
Для сравнения (при создании блока с нужным кол-вом выходов), в качестве примера, прилагаю блок на 3 выхода.
Если будете использовать блок с избыточным кол-вом выходов, будьте готовы к "мусору" на неиспользуемых выходах.
pars_5_out_(CODE).ubi
pars_3_out_(CODE).ubi
parsing.flp
Разбор содержимого строки
Добавлено: 16 янв 2019, 20:19
AlexCrane
[ref]Ingwar[/ref], Думал строку разобрать по словам с разделителем "пробел", ан нет первое слово пропало т.к. спереди нет пробела. Как мне кажется намного полезнее разбирать по окончанию разделителя
Пример jjjeee123;1r23;234;we;asd;5;7775;
На выходе:
jjjeee123
1r23
234
we
asd
И разрешение использовать такого типа блоки один раз не гуманно

Разбор содержимого строки
Добавлено: 16 янв 2019, 20:35
Ingwar
AlexCrane писал(а): 16 янв 2019, 20:19кажется намного полезнее разбирать по окончанию разделителя
Ingwar писал(а): 12 янв 2019, 20:13между заданным разделителем
Просто делал блок из примера под свои нужды, в дополнение к чтению с SD.
AlexCrane писал(а): 16 янв 2019, 20:19И разрешение использовать такого типа блоки один раз не гуманно
Да я не против, но во первых в моем проекте достаточно 1 раз, а во вторых - я решил изучать язык пару недель назад (Sancho не даст соврать)
И совершенно не против если Вы подправите и выложите более удобный вариант.
Разбор содержимого строки
Добавлено: 17 янв 2019, 21:08
AlexCrane
[ref]Ingwar[/ref], Находит в строке элемент выделенный с обоих сторон разделителем sep по его номеру вхождения index
Пример:
000;111;222;333;444;555;666;777;888;999;w
по индексу 1 найдет 111
000 и w не найдутся т.к. не выделены разделителем с двух сторон
Если по индеку не находим ничего на выходе пустая строка и Find = false;
Оттестируй
Разбор содержимого строки
Добавлено: 17 янв 2019, 22:56
Ingwar
AlexCrane писал(а): 17 янв 2019, 21:08Оттестируй
Спасибо. Работает.
Проверил пока в эмуляторе.
Разбор содержимого строки
Добавлено: 17 янв 2019, 23:38
rw6cm
[ref]Ingwar[/ref],
Зачем замарачиваться, если это элементарно делается встроенными блоками
Парсинг строк.flp
Разбор содержимого строки
Добавлено: 18 янв 2019, 00:30
Ingwar
rw6cm писал(а): 17 янв 2019, 23:38Зачем замарачиваться,
Не считая удобства (хотя и Ваш вариант можно загнать в ПБ) - в 2 раза меньше памяти устройства и в 6 раз меньше динамической памяти.
Разбор содержимого строки
Добавлено: 18 янв 2019, 02:25
rw6cm
Ingwar писал(а): 18 янв 2019, 00:30Не считая удобства (хотя и Ваш вариант можно загнать в ПБ) - в 2 раза меньше памяти устройства и в 6 раз меньше динамической памяти.
Откуда такие астрономические данные
[spoiler]
тест1.png
тест2.png
[/spoiler]
Отправлено спустя 1 час 28 минут 46 секунд:
Если по логике предложенной AlexCrane (выводить последовательно в одну переменную)
еще проще
Парсинг в 1переменную.flp
Разбор содержимого строки
Добавлено: 18 янв 2019, 08:11
Ingwar
rw6cm писал(а): 18 янв 2019, 02:25Откуда такие астрономические данные
Мы разные блоки сравниваем. И правильнее сравнивать без ввода/вывода. Я отключил в Вашем проекте 1 и 3 платы.
Ваш на стандартных блоках.
[spoiler]
ср2.png
[/spoiler]
С первого поста
[spoiler]
ср3.png
[/spoiler]
И вариант Александра по моей просьбе с последовательным выводом
[spoiler]
ср1.png
[/spoiler]
P.S. Ваш последний
[spoiler]
ср4.png
[/spoiler]
Тут все гораздо лучше конечно. Только нет произвольной выборки по индексу.
Разбор содержимого строки
Добавлено: 18 янв 2019, 09:12
AlexCrane
rw6cm писал(а): 18 янв 2019, 02:25выводить последовательно в одну переменную
Ingwar писал(а): 18 янв 2019, 08:11И вариант Александра по моей просьбе с последовательным выводом
Последовательный вывод был просто для примера, а так произвольно....
Разбор содержимого строки
Добавлено: 18 янв 2019, 11:58
rw6cm
Ingwar писал(а): 18 янв 2019, 08:11Мы разные блоки сравниваем. И правильнее сравнивать без ввода/вывода. Я отключил в Вашем проекте 1 и 3 платы.
Тогда правильней удалить 1,3, платы и расклад будет другой (при отключении платы объем кода не сильно меняется)
Ingwar писал(а): 18 янв 2019, 08:11Только нет произвольной выборки по индексу.
да это не проблема
Парсинг в 1пер по индексу.flp
кстати не понятно
AlexCrane писал(а): 17 янв 2019, 21:08000 и w не найдутся т.к. не выделены разделителем с двух сторон
как вести счет по индексу перед словом или после? как то с двух сторон в путаницу вводит.
п/с вообще я просто предложил, как это сделать стандартными блоками, тем кто захочет сделать что то под свои хотелки )
Разбор содержимого строки
Добавлено: 18 янв 2019, 12:34
Ingwar
rw6cm писал(а): 18 янв 2019, 11:58как то с двух сторон в путаницу вводит.
Это просто для примера,что не заключенные в разделитель - не читаются.
rw6cm писал(а): 18 янв 2019, 11:58Тогда правильней удалить 1,3, платы и расклад будет другой (при отключении платы объем кода не сильно меняется)
Да, согласен, стало меньше
[spoiler]
ср5.png
[/spoiler]
rw6cm писал(а): 18 янв 2019, 11:58как это сделать стандартными блоками, тем кто захочет сделать что то под свои хотелки )
За это и +

Разбор содержимого строки
Добавлено: 18 янв 2019, 12:38
AlexCrane
rw6cm писал(а): 18 янв 2019, 11:58как вести счет по индексу перед словом или после? как то с двух сторон в путаницу вводит.
В этом согласен, я бы вел счет по разделителю после, так будет правильнее
к примеру строка:
В лесу родилась ёлочка
с разделителем
пробел
разбиралась строго по словам, причем последний пробел не учитывался бы:
1 В
2 лесу
3 родилась
4 ёлочка
[ref=#ff8000]rw6cm[/ref], вот Вам задачка, справитесь?
Разбор содержимого строки
Добавлено: 18 янв 2019, 14:43
rw6cm
AlexCrane писал(а): 18 янв 2019, 12:38rw6cm, вот Вам задачка, справитесь?
In the forest was born herringbone.flp
Разбор содержимого строки
Добавлено: 18 янв 2019, 15:56
AlexCrane
rw6cm писал(а): 18 янв 2019, 14:43In the forest was born herringbone.flp
Не, нужно с выводом нужного слова, к примеру на входе
2, на выходе
the
Разбор содержимого строки
Добавлено: 18 янв 2019, 18:53
rw6cm
AlexCrane писал(а): 18 янв 2019, 15:56Не, нужно с выводом нужного слова, к примеру на входе 2, на выходе the
В лесу родилась елочка.flp
Разбор содержимого строки
Добавлено: 19 янв 2019, 10:01
AlexCrane
[ref]Ingwar[/ref], [ref=#ff8000]rw6cm[/ref],
Для тех кто не хочет заморачиваться, то-же самое что и выше в посту, только на ПБ
В лесу родилась елочка ПБ.flp
Игорь, так более правильно парсить, чем искать вложение между разделителями

Разбор содержимого строки
Добавлено: 13 ноя 2019, 13:42
gerdog
[ref]AlexCrane[/ref], огромное человеческое спасибо тебе!!! кажется то, что нужно!
Разбор содержимого строки
Добавлено: 13 ноя 2019, 13:52
KulibinOrsk
Полезная вещь. В копилку.
ВОПРОС ЗНАТОКАМ: подскажите как переменную string записать в eeprom а потом считать и записать в другую переменную.
А частности с sim800 считываю номер телефона +7922620... его надо сохранить в еепром и при необходимости считать для работы.
Разбор содержимого строки
Добавлено: 13 ноя 2019, 14:01
Phazz
[ref]KulibinOrsk[/ref], перевести в longinteger
Отправлено спустя 50 секунд:
Без плюса разумеется