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

Разбор содержимого строки

Добавлено: 12.01.2019{, 20:13}
Ingwar
Блок для вычленения нужной информации между заданным разделителем из СМС, с СОМ порта или SD.
Содержит 5 выходов.
На пример строка на входе jjjeee123;1r23;234;we;asd;5;7775 в качестве разделителя выбран символ ";"

На выходах блока будут соответственно:
1r23
234
we
asd
5

Структура очень простая и легко можете переделать на большее или меньшее кол-во.
Для сравнения (при создании блока с нужным кол-вом выходов), в качестве примера, прилагаю блок на 3 выхода.

Если будете использовать блок с избыточным кол-вом выходов, будьте готовы к "мусору" на неиспользуемых выходах.
pars_5_out_(CODE).ubi
(26.91 КБ) 258 скачиваний
pars_3_out_(CODE).ubi
(25.13 КБ) 244 скачивания
parsing.flp
(87.67 КБ) 265 скачиваний

Разбор содержимого строки

Добавлено: 16.01.2019{, 20:19}
AlexCrane
Ingwar, Думал строку разобрать по словам с разделителем "пробел", ан нет первое слово пропало т.к. спереди нет пробела. Как мне кажется намного полезнее разбирать по окончанию разделителя

Пример jjjeee123;1r23;234;we;asd;5;7775;

На выходе:
jjjeee123
1r23
234
we
asd

И разрешение использовать такого типа блоки один раз не гуманно :shok:

Разбор содержимого строки

Добавлено: 16.01.2019{, 20:35}
Ingwar
AlexCrane писал(а):
16.01.2019{, 20:19}
кажется намного полезнее разбирать по окончанию разделителя
Ingwar писал(а):
12.01.2019{, 20:13}
между заданным разделителем
Просто делал блок из примера под свои нужды, в дополнение к чтению с SD.
AlexCrane писал(а):
16.01.2019{, 20:19}
И разрешение использовать такого типа блоки один раз не гуманно
Да я не против, но во первых в моем проекте достаточно 1 раз, а во вторых - я решил изучать язык пару недель назад (Sancho не даст соврать) :smile44:
И совершенно не против если Вы подправите и выложите более удобный вариант.

Разбор содержимого строки

Добавлено: 17.01.2019{, 21:08}
AlexCrane
Ingwar, Находит в строке элемент выделенный с обоих сторон разделителем sep по его номеру вхождения index
Пример:
000;111;222;333;444;555;666;777;888;999;w

по индексу 1 найдет 111
000 и w не найдутся т.к. не выделены разделителем с двух сторон

Если по индеку не находим ничего на выходе пустая строка и Find = false;

Оттестируй

Разбор содержимого строки

Добавлено: 17.01.2019{, 22:56}
Ingwar
AlexCrane писал(а):
17.01.2019{, 21:08}
Оттестируй
Спасибо. Работает.
Проверил пока в эмуляторе.

Разбор содержимого строки

Добавлено: 17.01.2019{, 23:38}
rw6cm
Ingwar,
Зачем замарачиваться, если это элементарно делается встроенными блоками :)
Парсинг строк.flp
(220.41 КБ) 267 скачиваний

Разбор содержимого строки

Добавлено: 18.01.2019{, 00:30}
Ingwar
rw6cm писал(а):
17.01.2019{, 23:38}
Зачем замарачиваться,
Не считая удобства (хотя и Ваш вариант можно загнать в ПБ) - в 2 раза меньше памяти устройства и в 6 раз меньше динамической памяти.

Разбор содержимого строки

Добавлено: 18.01.2019{, 00:57}
rw6cm
Ingwar писал(а):
18.01.2019{, 00:30}
Не считая удобства (хотя и Ваш вариант можно загнать в ПБ) - в 2 раза меньше памяти устройства и в 6 раз меньше динамической памяти.
Откуда такие астрономические данные :smile37: :)
СпойлерПоказать
тест1.png
тест2.png
Отправлено спустя 1 час 28 минут 46 секунд:
Если по логике предложенной AlexCrane (выводить последовательно в одну переменную)
еще проще
Парсинг в 1переменную.flp
(72.57 КБ) 149 скачиваний

Разбор содержимого строки

Добавлено: 18.01.2019{, 08:11}
Ingwar
rw6cm писал(а):
18.01.2019{, 02:25}
Откуда такие астрономические данные
Мы разные блоки сравниваем. И правильнее сравнивать без ввода/вывода. Я отключил в Вашем проекте 1 и 3 платы.
Ваш на стандартных блоках.
СпойлерПоказать
ср2.png
С первого поста
СпойлерПоказать
ср3.png
И вариант Александра по моей просьбе с последовательным выводом
СпойлерПоказать
ср1.png
P.S. Ваш последний
СпойлерПоказать
ср4.png
Тут все гораздо лучше конечно. Только нет произвольной выборки по индексу.

Разбор содержимого строки

Добавлено: 18.01.2019{, 09:12}
AlexCrane
rw6cm писал(а):
18.01.2019{, 02:25}
выводить последовательно в одну переменную
Ingwar писал(а):
18.01.2019{, 08:11}
И вариант Александра по моей просьбе с последовательным выводом
Последовательный вывод был просто для примера, а так произвольно....

Разбор содержимого строки

Добавлено: 18.01.2019{, 11:58}
rw6cm
Ingwar писал(а):
18.01.2019{, 08:11}
Мы разные блоки сравниваем. И правильнее сравнивать без ввода/вывода. Я отключил в Вашем проекте 1 и 3 платы.
Тогда правильней удалить 1,3, платы и расклад будет другой (при отключении платы объем кода не сильно меняется)
Ingwar писал(а):
18.01.2019{, 08:11}
Только нет произвольной выборки по индексу.
да это не проблема
Парсинг в 1пер по индексу.flp
(164.23 КБ) 125 скачиваний
кстати не понятно
AlexCrane писал(а):
17.01.2019{, 21:08}
000 и w не найдутся т.к. не выделены разделителем с двух сторон
как вести счет по индексу перед словом или после? как то с двух сторон в путаницу вводит.

п/с вообще я просто предложил, как это сделать стандартными блоками, тем кто захочет сделать что то под свои хотелки )

Разбор содержимого строки

Добавлено: 18.01.2019{, 12:34}
Ingwar
rw6cm писал(а):
18.01.2019{, 11:58}
как то с двух сторон в путаницу вводит.
Это просто для примера,что не заключенные в разделитель - не читаются.
rw6cm писал(а):
18.01.2019{, 11:58}
Тогда правильней удалить 1,3, платы и расклад будет другой (при отключении платы объем кода не сильно меняется)
Да, согласен, стало меньше
СпойлерПоказать
ср5.png
rw6cm писал(а):
18.01.2019{, 11:58}
как это сделать стандартными блоками, тем кто захочет сделать что то под свои хотелки )
За это и + :smile9:

Разбор содержимого строки

Добавлено: 18.01.2019{, 12:38}
AlexCrane
rw6cm писал(а):
18.01.2019{, 11:58}
как вести счет по индексу перед словом или после? как то с двух сторон в путаницу вводит.
В этом согласен, я бы вел счет по разделителю после, так будет правильнее
к примеру строка:
В лесу родилась ёлочка
с разделителем пробел
разбиралась строго по словам, причем последний пробел не учитывался бы:
1 В
2 лесу
3 родилась
4 ёлочка

rw6cm, вот Вам задачка, справитесь?

Разбор содержимого строки

Добавлено: 18.01.2019{, 14:43}
rw6cm
AlexCrane писал(а):
18.01.2019{, 12:38}
rw6cm, вот Вам задачка, справитесь?
:)
In the forest was born herringbone.flp
(62.43 КБ) 119 скачиваний

Разбор содержимого строки

Добавлено: 18.01.2019{, 15:56}
AlexCrane
rw6cm писал(а):
18.01.2019{, 14:43}
In the forest was born herringbone.flp
Не, нужно с выводом нужного слова, к примеру на входе 2, на выходе the

Разбор содержимого строки

Добавлено: 18.01.2019{, 18:53}
rw6cm
AlexCrane писал(а):
18.01.2019{, 15:56}
Не, нужно с выводом нужного слова, к примеру на входе 2, на выходе the
В лесу родилась елочка.flp
(193.24 КБ) 150 скачиваний

Разбор содержимого строки

Добавлено: 19.01.2019{, 10:01}
AlexCrane
Ingwar, rw6cm,
Для тех кто не хочет заморачиваться, то-же самое что и выше в посту, только на ПБ
В лесу родилась елочка ПБ.flp
(113.58 КБ) 222 скачивания
Игорь, так более правильно парсить, чем искать вложение между разделителями :yes:

Разбор содержимого строки

Добавлено: 13.11.2019{, 13:42}
gerdog
AlexCrane, огромное человеческое спасибо тебе!!! кажется то, что нужно!

Разбор содержимого строки

Добавлено: 13.11.2019{, 13:52}
KulibinOrsk
Полезная вещь. В копилку.
ВОПРОС ЗНАТОКАМ: подскажите как переменную string записать в eeprom а потом считать и записать в другую переменную.
А частности с sim800 считываю номер телефона +7922620... его надо сохранить в еепром и при необходимости считать для работы.

Разбор содержимого строки

Добавлено: 13.11.2019{, 14:00}
Phazz
KulibinOrsk, перевести в longinteger

Отправлено спустя 50 секунд:
Без плюса разумеется