Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


 
Опции темы

Как распарсить строку - помогите

Непрочитано 10.02.2016, 17:03  
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 11,111
Сказал спасибо: 202
Сказали Спасибо 3,280 раз(а) в 2,147 сообщении(ях)
индюк на пути к лучшему
По умолчанию Как распарсить строку - помогите

пишу, вернее осваиваю qt5
два раза в секунду с ком порта приходит строка "t01=+025,t02=+020,t03=-10,t04+-2" и так 16 датчиков температуры.

помогите как мне в кути разложить ее обратно на составляющие чтоб у меня было 16 переменных с температурами с каждого датчика?
как это грамотно написать?
строку которую присылает проц можно как угодно переписать
я попробовал строку на лету разбирать - ужасно плохо работает даже не буду код выкладывать ибо заплюете
Реклама:
__________________
кагмаподэ магмаподэ
индюк вне форума  
Непрочитано 10.02.2016, 17:12  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: как распарсить строку - помогите

Запятыми разбить на строки. Строки разбить на столбцы через "=". Дальше все просто - первый символ либо +, либо -. А дальше строку в число.
Easyrider83 вне форума  
Непрочитано 10.02.2016, 17:15  
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 11,111
Сказал спасибо: 202
Сказали Спасибо 3,280 раз(а) в 2,147 сообщении(ях)
индюк на пути к лучшему
По умолчанию Re: как распарсить строку - помогите

Easyrider83, да я не знаю как там со строками работать. подскажи какими методами это делается то?
__________________
кагмаподэ магмаподэ
индюк вне форума  
Непрочитано 10.02.2016, 17:19  
zöner
Гражданин KAZUS.RUN
 
Регистрация: 16.02.2012
Сообщений: 440
Сказал спасибо: 89
Сказали Спасибо 735 раз(а) в 149 сообщении(ях)
zöner на пути к лучшему
По умолчанию Re: как распарсить строку - помогите

для начала можно почитать доки

http://doc.qt.io/qt-5/qstring.html#split
http://doc.qt.io/qt-5/qstring.html#toInt

еще лучше - сразу писать на QML
zöner вне форума  
Непрочитано 10.02.2016, 23:11  
AYuM
Прописка
 
Аватар для AYuM
 
Регистрация: 21.04.2009
Адрес: Королёв
Сообщений: 89
Сказал спасибо: 1,054
Сказали Спасибо 34 раз(а) в 27 сообщении(ях)
AYuM на пути к лучшему
По умолчанию Re: как распарсить строку - помогите

По приходу символа "t", пропускаете цифры до символа"=", далее пишите последующие символы в новую текстовую переменную.
Это в простейшем случае, без учёта "номера t"
AYuM вне форума  
Непрочитано 13.02.2016, 15:38  
marera
Гражданин KAZUS.RUN
 
Регистрация: 26.09.2005
Сообщений: 572
Сказал спасибо: 58
Сказали Спасибо 506 раз(а) в 134 сообщении(ях)
marera на пути к лучшему
По умолчанию Re: Как распарсить строку - помогите

Если
Сообщение от индюк Посмотреть сообщение
строку которую присылает проц можно как угодно переписать
то перепишите ее так, что бы писалась просто температура, а разделитель ";"
Ни каких манипуляций со строкой - сохраняйте все в файл с расширением "csv"
Далее в Exsel делаете что угодно (графики, таблицы, стат обработки и т.д.)
__________________
Будь проще, дойдет и до синтеза.
marera вне форума  
Непрочитано 13.02.2016, 18:13  
zöner
Гражданин KAZUS.RUN
 
Регистрация: 16.02.2012
Сообщений: 440
Сказал спасибо: 89
Сказали Спасибо 735 раз(а) в 149 сообщении(ях)
zöner на пути к лучшему
По умолчанию Re: Как распарсить строку - помогите

зачем excel?

http://www.live-graph.org/
https://code.google.com/archive/p/serialchart/
https://github.com/tardigrade888/scsvlog
http://www.blendedtechnologies.com/r...ing-python/231
zöner вне форума  
Эти 2 пользователя(ей) сказали Спасибо zöner за это сообщение:
Alex9797 (19.02.2016), Zoosman (13.02.2016)
Непрочитано 19.02.2016, 01:23  
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 11,111
Сказал спасибо: 202
Сказали Спасибо 3,280 раз(а) в 2,147 сообщении(ях)
индюк на пути к лучшему
По умолчанию Re: Как распарсить строку - помогите

Сообщение от marera Посмотреть сообщение
Далее в Exsel делаете что угодно
хороший совет, только причем тут эксель? у меня это система управления а не отчетности
__________________
кагмаподэ магмаподэ
индюк вне форума  
Непрочитано 19.02.2016, 01:35  
Alex9797
Почётный гражданин KAZUS.RUN
 
Аватар для Alex9797
 
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,548
Сказал спасибо: 5,035
Сказали Спасибо 10,605 раз(а) в 3,594 сообщении(ях)
Alex9797 на пути к лучшему
По умолчанию Re: Как распарсить строку - помогите

Сообщение от zöner Посмотреть сообщение
зачем excel?
zöner, спасибо за ссылки!
Alex9797 вне форума  
Непрочитано 27.02.2016, 01:44  
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 11,111
Сказал спасибо: 202
Сказали Спасибо 3,280 раз(а) в 2,147 сообщении(ях)
индюк на пути к лучшему
По умолчанию Re: Как распарсить строку - помогите

во. освоил QString QSerialport и прочие.........

void MainWindow::data()
{


QString old;
QStringList l;
int index1;
int index2;
int len2;
static QString s;
QString s1;


while(1)
{


QString s1 = QString(serial.readLine());
if(!s1.length())break;

s.append(s1);




if (s.length()›75)
//if (s.indexOf("begin")››10) { s.clear();}
{

ui-›label-›setText(s);
index1 = s.indexOf("begin");
index2 = s.indexOf("EOF");
len2 = s.length();
//ui-›label_2-›setText(QString("%1").arg(index1, 0, 10));
if (index2!=75) { s.clear(); break;}

ui-›label_2-›setText(s.mid(index1+5,4));
ui-›label_3-›setText(s.mid(index1+9,4));
ui-›label_4-›setText(s.mid(index1+13,4));
ui-›label_5-›setText(s.mid(index1+17,4));
ui-›label_6-›setText(s.mid(index1+21,4));
ui-›label_7-›setText(s.mid(index1+25,4));
ui-›label_8-›setText(s.mid(index1+29,4));
ui-›label_9-›setText(s.mid(index1+33,4));
ui-›label_10-›setText(s.mid(index1+37,4));
ui-›label_11-›setText(s.mid(index1+41,4));
ui-›label_12-›setText(s.mid(index1+45,4));
ui-›label_13-›setText(s.mid(index1+49,4));
ui-›label_14-›setText(s.mid(index1+53,4));
ui-›label_15-›setText(s.mid(index1+57,4));
ui-›label_16-›setText(s.mid(index1+61,4));
ui-›label_17-›setText(s.mid(index1+65,4));
//ui-›label_18-›setText(QString("%1").arg(len2, 0, 10));
ui-›label_18-›setText(QString("%1").arg(index2, 0, 10));



s.clear();
}

}




}
__________________
кагмаподэ магмаподэ
индюк вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите русифицировать Anycall Samsung SEC SCHW770, SEC SCHW420, SEC SCHW2700, SEC SCHW570 Rusik_best Автоматика и аппаратура связи 0 27.12.2011 16:13
Помогите, пожалуйста, с PICом и дисплеем VaL_KX Proteus 4 15.11.2010 22:33
Помогите подключить "LaserJet". didik-dog Отвлекитесь, эмбеддеры! 24 05.06.2007 20:10
Нужна схема аудиоцентра JVC CA-MXG71R помогите найти cbmaster Поиск схем. Делимся схемами 0 16.05.2007 23:12
Помогите выбрать интерфейс yel Микроконтроллеры, АЦП, память и т.д 6 04.05.2007 15:07


Часовой пояс GMT +4, время: 13:09.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.