Поиск:

Ответ в темуСоздание новой темы Создание опроса
> QString 
:(
    Опции темы
daemonaz
Дата 27.12.2011, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 160
Регистрация: 4.5.2008

Репутация: нет
Всего: нет



Я новичок в QT_программировании, прошу меня не бить, у меня задача в следующем, получаю из COM_порта символы, их надо набрать в текст до первого появления /n/r, далее анализируем что пришло и удаляем этот текст из-за ненадобности. С применением stdlib и stdio это легко можно сделать, а вот как это сделать с применением QString? Спасибо. 
PM MAIL   Вверх
EKoshelev
Дата 27.12.2011, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 509
Регистрация: 1.9.2004

Репутация: нет
Всего: нет



Код

// str - та строка, которая пришла с COM-порта

// Достаём позицию "/n/r"
int p = str.indexOf("/n/r");
// Возвращаем фрагмент строки от первого до (p - 1)-го символа
return str.mid(0, p - 1);

// Либо так

// Разбиваем строку на массив строк. Разделитель "/n/r"
QStringList list = str.split("/n/r");
// Возвращаем первый элмент полученного массива
return list[0];



--------------------
Вежливым и адекватным предлагаю общаться на "ты".
PM MAIL   Вверх
borisbn
Дата 27.12.2011, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



Цитата(daemonaz @  27.12.2011,  12:16 Найти цитируемый пост)
до первого появления /n/r

наверное, всё-таки, \n\r?



--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
daemonaz
Дата 27.12.2011, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 160
Регистрация: 4.5.2008

Репутация: нет
Всего: нет



Мне нужно написать на скорую руку тестовую программу, которая в диалоговом режиме обшалась с неким устройством на базе микроконтроллера, то есть передача команды, ожидание подтверждения в виде ASCII-строк, анализ и принятия решения, что-то вроде как с GSM-модемом с помошью AT-команд, для работы с COM-портом был выбран QextSerialPort. Мне не хотелось создавать что-то вроде бесконечного цикла, чтобы пользователь смог отменить процесс выполнения команды или настроить конфигурации во время выполнения процессов, я думал создавать три потока: поток приема данных с COM-порта, поток передачи и поток обработки и принятия решения, а также вывода на консоль, хотелось бы совета специалистов, можно ли обойтись без потоков и как это сделать? Буду благодарен если скинете пример реализации подобных вещей, новичок, только изучаю.. Спасибо
PM MAIL   Вверх
volatile
Дата 28.12.2011, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: нет
Всего: 85



Цитата(borisbn @ 27.12.2011,  14:11)
Цитата(daemonaz @  27.12.2011,  12:16 Найти цитируемый пост)
до первого появления /n/r

наверное, всё-таки, \n\r?

если еще точнее, то вероятно \r\n
 smile 

PM MAIL   Вверх
bsa
Дата 28.12.2011, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



volatile, у модемов завершающим строку символом обычно является <CR>, который имеет код \r.
PM   Вверх
_GRIN_
Дата 28.12.2011, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


одинокий падаван
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 18.11.2007
Где: Калуга

Репутация: 6
Всего: 7



Цитата(daemonaz @  27.12.2011,  20:48 Найти цитируемый пост)
Буду благодарен если скинете пример реализации подобных вещей

Недавно писал под линь - юсб-модем - работа как с файлом - читаем/пишем

для гуй-вида в main.cpp в первой строке замени #if 0 - на - #if 1

Будут вопросы - спрашивай. Писал данный код (в аттаче) примерно месяца 2 назад. Так что с ходу может всё и не вспомню


Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  tst_usb_serial_port_device.zip 7,88 Kb


--------------------
Дорогу осилит идущий
PM MAIL Skype   Вверх
daemonaz
Дата 29.12.2011, 07:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 160
Регистрация: 4.5.2008

Репутация: нет
Всего: нет



_GRIN_,  спасибо большое! С наступающим Новым годом! smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0485 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.