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

Re: Выделение подстроки.

Добавлено: 03 окт 2016, 16:27
kosmas
Продолжаем разговор... :)
Итак, мне в UART прилетает строка :
0D 0A 0D 0A 0D 0A 2B 43 4C 49 50 3A 20 22 37 39 31 31 32 32 35 35 34 30 35 22 2C 31 34 35 2C 2C 2C 22 22 2C 30 0D 0A
или

RING

+CLIP: "79312556475",145,,, ,0
Номер изменил для секретности :)

Я пытаюсь вычленить отсюда номер телефона - он на 18 позиции. НО!
Если написать substr(rx_uart1, 18, 10) , то на экранчике ничего не отображается.
Если написать substr(rx_uart1, 12, 8) , то на экране остается только CLIP, если написать (rx_uart1, 14, 8) - то только IP, что какбэ намекает, что начиная с двоеточия ничего не получишь... :(

Re: Выделение подстроки.

Добавлено: 03 окт 2016, 17:52
gurvinok
Какая неприятность!. Я просто в шоке. Вот помощь в этом вопросе. :lol:

Re: Выделение подстроки.

Добавлено: 03 окт 2016, 18:10
kosmas
gurvinok писал(а):Какая неприятность!. Я просто в шоке. Вот помощь в этом вопросе. :lol:
Мои соболезнования лампе... :lol:

Может, проблема в том, что я пытаюсь эту штуку в STM32F103C8T6 впихнуть? Единственное отличие - KEIL про тип BYTE не в курсе... Зато про char знает... :ugeek: Но, все равно спасибо... :geek:

Re: Выделение подстроки.

Добавлено: 03 окт 2016, 18:22
gurvinok
Чтобы кеил узнал про BYTE нужно написать одну строчку.
typedef char BYTE;

Re: Выделение подстроки.

Добавлено: 03 окт 2016, 18:38
kosmas
gurvinok писал(а):Чтобы кеил узнал про BYTE нужно написать одну строчку.
typedef char BYTE;
Во-первых - это неспортивно.. :)
Во-вторых - что там было про Буратино? :) Это я молодец - сначала ограничил количество символов в буфере семнадцатью штуками, а потом забыл убрать ограничение... :)