реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> поиск в массиве по формат. строке
sergey sva
сообщение Mar 9 2008, 20:06
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



доброй вечер.

Нужно организовать поиск в массиве символов. Есть девайс который
общается с контроллером по 232, на запросы отвечает и передает данные, данные сохраняются в массиве из 100 байт новые затирают
старые байты. в промежутки времени нужно выбирать из массива
набор символов по шаблону. что типа регулярки. может есть
полезные ссылки.
Код:

arr = "155465634%*145665*% 446666666666666 ";
нужно вытащить то что находится между %* *%
Go to the top of the page
 
+Quote Post
Kitsok
сообщение Mar 9 2008, 21:35
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 9-11-06
Пользователь №: 22 136



Цитата(sergey sva @ Mar 9 2008, 23:06) *
arr = "155465634%*145665*% 446666666666666 ";
нужно вытащить то что находится между %* *%

libregex?
хотя если формат строки не меняется, я бы на вашем месте сделал бы жестки алгоритм (поискать процент, читать дальше пока не процент опять), регулярные выражения - вещь ресурсоемкая.
Go to the top of the page
 
+Quote Post
DeadMoroz
сообщение Mar 9 2008, 23:35
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 3-02-05
Пользователь №: 2 391



может Вам поможет функция strtok() - позволяет выделять отдельные токены в строке, но как уже было отмечено, вещь достаточно емкая.
Go to the top of the page
 
+Quote Post
KAlex
сообщение Mar 10 2008, 08:25
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 387
Регистрация: 20-12-06
Из: Obninsk
Пользователь №: 23 719



Если скорость не критична, то можно strstr.
А лучше самому написать.
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Mar 10 2008, 12:14
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Цитата(KAlex @ Mar 10 2008, 11:25) *
Если скорость не критична, то можно strstr.
А лучше самому написать.

Написал свою функцию, так наверно надежней будет.
Темы не хочется плодить, ато еще модераторы ругаться будут smile.gif. еще понял что сколь не учись все равно
все знать не возможно.
пока возился со строками понял что не знаю как прекрутить к строке спец символ, может кто что знает?
Код
SEND_RS232("+++ATE0CR",10);

SEND_RS232("+++ATE0'CR'",10);

SEND_RS232("'+','+','+','A','T','E','0','C','R'",10);

SEND_RS232("+++ATE0\0D",10);

вообщем пробовал по разному. передаются символы а спец символ CR не хотит .
keil ARM компилятор.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Mar 10 2008, 12:26
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



SEND_RS232("+++ATE0\r",10);

Код
Escape sequence    Char value    Description

\a                 7             Attention (bell)
\b                 8             Backspace
\t                 9             Horizontal tab
\n                 10            New line (line feed)
\v                 11            Vertical tab
\f                 12            Form feed
\r                 13            Carriage return
\xnn               0xnn          ASCII code in hexadecimal
\nnn               0nnn          ASCII code in octal


Это написано в любом букваре по 'C'.
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Mar 10 2008, 12:43
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Цитата(aaarrr @ Mar 10 2008, 15:26) *
SEND_RS232("+++ATE0\r",10);

Код
Escape sequence    Char value    Description

\a                 7             Attention (bell)
\b                 8             Backspace
\t                 9             Horizontal tab
\n                 10            New line (line feed)
\v                 11            Vertical tab
\f                 12            Form feed
\r                 13            Carriage return
\xnn               0xnn          ASCII code in hexadecimal
\nnn               0nnn          ASCII code in octal


Это написано в любом букваре по 'C'.


благодарю. smile.gif
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 15th July 2025 - 13:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.01403 секунд с 7
ELECTRONIX ©2004-2016