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

Пользовательские блоки расширяющие стандартные возможности работы со строками.
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Ingwar
Полковник
Сообщения: 1929
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 223
Откуда: Ленобласть
Имя: Игорь

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

#1

Сообщение Ingwar » 12.01.2019{, 20:13}

Блок для вычленения нужной информации между заданным разделителем из СМС, с СОМ порта или 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 КБ) 243 скачивания
parsing.flp
(87.67 КБ) 265 скачиваний
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

KulibinOrsk
Лейтенант
Сообщения: 515
Зарегистрирован: 25.02.2018{, 08:48}
Репутация: 21
Откуда: Оренбург
Имя: Александр

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

#21

Сообщение KulibinOrsk » 13.11.2019{, 14:04}

Phazz, переводил, записывал. но что то не так. на дисплее вовсе не те цифры были.

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

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

#22

Сообщение Dryundel » 13.11.2019{, 15:05}

KulibinOrsk писал(а):
13.11.2019{, 14:04}
Phazz, переводил, записывал. но что то не так. на дисплее вовсе не те цифры были.
KulibinOrsk, размерности long и даже unsigned long не хватает на 10 знаковый номер.
Думаю надо делить номер на части, а потом собирать.

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

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

#23

Сообщение Sancho » 13.11.2019{, 16:27}

KulibinOrsk, Александр, я как-то выкладывал блок для eeprom, позволяющий записывать рецепты.
Его немного допилить под string, и получится всё, что нужно.
Я телефоны, фамилии и имена храню в 24Cхх, по I2C.
При приёме из уарт делаю поиск по моей "записной книжке".
Там-же, в книжке, каждому прописаны уровни доступа. Блок на форуме.
Да много чего есть у меня.... :) А коньячёк заканчивается :helpme:
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

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

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

#24

Сообщение Dryundel » 13.11.2019{, 17:07}

Sancho писал(а):
13.11.2019{, 16:27}
я как-то выкладывал блок для eeprom, позволяющий записывать рецепты
Чет с ходу не нашел. А интересно. :)

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

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

#25

Сообщение Sancho » 13.11.2019{, 17:16}

Dryundel писал(а):
13.11.2019{, 17:07}
Чет с ходу не нашел. А интересно. :)
Вот тут, наверное :)
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

KulibinOrsk
Лейтенант
Сообщения: 515
Зарегистрирован: 25.02.2018{, 08:48}
Репутация: 21
Откуда: Оренбург
Имя: Александр

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

#26

Сообщение KulibinOrsk » 13.11.2019{, 18:57}

Sancho, мне же хранить то надо максимум 3 номера и то в перспективе. Сейчас только один номер. Из-за этого городить микруху памяти жесть )))
Насчет коньячка намек понятен, возможно скоро будет вопрос размером на коньяк :smile225:

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

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

#27

Сообщение Sancho » 13.11.2019{, 19:05}

KulibinOrsk писал(а):
13.11.2019{, 18:57}
Sancho, мне же хранить то надо максимум 3 номера и то в перспективе. Сейчас только один номер. Из-за этого городить микруху памяти жесть )))
Я не о микрухе, я о блоке по ссылке.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

KulibinOrsk
Лейтенант
Сообщения: 515
Зарегистрирован: 25.02.2018{, 08:48}
Репутация: 21
Откуда: Оренбург
Имя: Александр

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

#28

Сообщение KulibinOrsk » 20.11.2019{, 07:19}

Sancho, каюсь не допилю сам ))
А надо то стринг типа "+7922620хххх" уложить в еепром и при необходимости считывать в переменную "стринг"

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 334
Имя: Владимир

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

#29

Сообщение rw6cm » 20.11.2019{, 10:30}

KulibinOrsk писал(а):
20.11.2019{, 07:19}
не допилю сам ))
И что там пилить? если блоками флп элементарно сделать.
N тел в EEPROM.flp
(79.64 КБ) 99 скачиваний
Win10-64, FLProg (portable)

KulibinOrsk
Лейтенант
Сообщения: 515
Зарегистрирован: 25.02.2018{, 08:48}
Репутация: 21
Откуда: Оренбург
Имя: Александр

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

#30

Сообщение KulibinOrsk » 20.11.2019{, 11:15}

rw6cm, вот спасибки!
Вопрос снят. Пойду изучать GetSubstring.

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

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

#31

Сообщение Sancho » 20.11.2019{, 11:32}

KulibinOrsk, зря делал?
Но надеюсь, кому нибудь, да пригодится....

Отправлено спустя 1 минуту 1 секунду:
rw6cm, Володя а два, три, десять?
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

KulibinOrsk
Лейтенант
Сообщения: 515
Зарегистрирован: 25.02.2018{, 08:48}
Репутация: 21
Откуда: Оренбург
Имя: Александр

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

#32

Сообщение KulibinOrsk » 20.11.2019{, 11:53}

Sancho, так утром сегодня зашел по той ссылке - не было стринг-еепром. Ну и подумал что мне делегировали "допилить" ) а деваться некуда - переменная затерлась (утром на улице -24 уже и акб подсел) и уже нужно было с еепром решать ) твою версию ща тоже проверим.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 334
Имя: Владимир

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

#33

Сообщение rw6cm » 20.11.2019{, 13:03}

Sancho писал(а):
20.11.2019{, 11:33}
а два, три, десять?
До десятка большой сложности не вижу,
1_2_3 тел в EEPROM.flp
(358.69 КБ) 126 скачиваний

больше конечно муторно все это набирать и не запутаться,
а если еще и буквы, то и сам блок бы сделал ))
Здесь есть один нюанс, при разбивке номера если вторая часть начинается с ноля,
то при конвертировании он исчезает, в проекте сделал как это обойти
п.с походу темку надо разделить и перенести в соответствующую
Win10-64, FLProg (portable)

KulibinOrsk
Лейтенант
Сообщения: 515
Зарегистрирован: 25.02.2018{, 08:48}
Репутация: 21
Откуда: Оренбург
Имя: Александр

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

#34

Сообщение KulibinOrsk » 20.11.2019{, 13:20}

rw6cm, у меня правильно начал отрабатывать только когда прописал так:
в первом гетстринг от 2 до 9
во втором гетстинг от 9 до 12
т.е. как было 2-8 и 8 ... не корректно было

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 334
Имя: Владимир

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

#35

Сообщение rw6cm » 20.11.2019{, 13:32}

KulibinOrsk,
в проекте 2-7 а не 8, и 7до конца.
но как у вашей переменной записан номер я не знаю
возможно есть пробелы или еще что, надо смотреть и отсчет вести свой
к тому же делить число номера можно не пополам а как удобно.
Если номера одного провайдера, можно сохранять только вторую часть после (допустим +7918)
Win10-64, FLProg (portable)

Аватара пользователя
ivanpost
Сержант
Сообщения: 140
Зарегистрирован: 24.09.2016{, 22:26}
Репутация: 4
Откуда: Тольятти
Имя: Иван
Контактная информация:

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

#36

Сообщение ivanpost » 05.07.2020{, 12:02}

AlexCrane писал(а):
19.01.2019{, 10:01}
Ingwar, rw6cm,
Для тех кто не хочет заморачиваться, то-же самое что и выше в посту, только на ПБ

В лесу родилась елочка ПБ.flp
Игорь, так более правильно парсить, чем искать вложение между разделителями :yes:
Подскажите, какие в этом блоке переменные можно сделать локальными?

Аватара пользователя
AlexCrane
Капитан
Сообщения: 895
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 294
Откуда: Ульяновск
Имя: Александр

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

#37

Сообщение AlexCrane » 06.07.2020{, 06:27}

ivanpost, Я думаю все...
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

Аватара пользователя
ivanpost
Сержант
Сообщения: 140
Зарегистрирован: 24.09.2016{, 22:26}
Репутация: 4
Откуда: Тольятти
Имя: Иван
Контактная информация:

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

#38

Сообщение ivanpost » 06.07.2020{, 22:04}

AlexCrane писал(а):
06.07.2020{, 06:27}
ivanpost, Я думаю все...
Очень полезный блок! Уж сделайте все переменные локальными своей рукой. А то он без нужды всю память займет ), если 5 раз вставить ;)

Ответить

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