Название: Разбор полученной QString строки от QLineEdit.Срочно Отправлено: kip_one от Сентябрь 16, 2012, 22:48 Уже голову поломал, но не получилось. Нужно разобрать строку на части и числа занести в числовые константы.
Буду рад любой помощи. Например: В QLineEdit записываю : line(15,10,99,100) И обрисовывается линия с такими координатами. QString a[5] Нужно что-бы a[0]="15";a[1]="10";a[2]="99";a[3]="100";a[4]="line" Название: Re: 2 элемента QChar соединить в один и преобразовать в int Отправлено: Kurles от Сентябрь 16, 2012, 23:04 Код
Название: Re: 2 элемента QChar соединить в один и преобразовать в int Отправлено: Alex_C от Сентябрь 17, 2012, 15:52 Может все же имеется ввиду
Код
Название: Re: Разбор полученной QString строки от QLineEdit.Срочно Отправлено: kip_one от Сентябрь 18, 2012, 21:18 Можно ли в данном случае воспользоватся QRegExp? Если да, то как?
Название: Re: Разбор полученной QString строки от QLineEdit.Срочно Отправлено: Bepec от Сентябрь 18, 2012, 21:24 Делаем проще.
Спрашиваем строку, есть ли там line (contains("строка") поможет). Записываем результат в переменную Обрезаем от "(" до ")" включительно(indexOf("скобочки") поможет найти, mid() поможет отрезать). А далее split(","). На выходе получаем то что ты хочешь :) Массив числовых значений + переменная которая показывает есть ли там line :) PS RegExp конечно можно применить, но я с ним не дружу. Да и говорят медленный он :) Название: Re: Разбор полученной QString строки от QLineEdit.Срочно Отправлено: cya-st от Сентябрь 18, 2012, 21:36 Попробуй сначала разбить на меньшие блоки
Код: QStringList lessBlocks = inputStr.split(";"); Код: foreach(QString block, lessBlocks) { Название: Re: Разбор полученной QString строки от QLineEdit.Срочно Отправлено: Alex Custov от Сентябрь 18, 2012, 23:43 Код
Пустые блоки в виде \\s* добавить по вкусу. Название: Re: Разбор полученной QString строки от QLineEdit.Срочно Отправлено: Alex_C от Сентябрь 19, 2012, 10:48 По моему все же самый верный совет у Вереса - RegExp и медленный, и если строка будет такая
line(10, 20, 30 , 40) - пользователь может и с пробелами вводить. по моему так лучше Код
Название: Re: Разбор полученной QString строки от QLineEdit.Срочно Отправлено: Bepec от Сентябрь 19, 2012, 12:53 Alex_c вы упустили маленькую заковырку :)
Судя по настроению ТСса, туда будут вводиться различные данные аля Код: rectangle() Потому ваш код нуждается в маленькой и очевидной доработке (даже паре, но приведу ток одну) :) Это добавление переменной, которая будет содержать строку до "(". Название: Re: Разбор полученной QString строки от QLineEdit.Срочно Отправлено: Igors от Сентябрь 19, 2012, 13:36 Код
Ну а главное - такие "кусочки кода" никакой общностью не обладает. Возникла чуть другая задача - и весь разбор по новой. Где-то после 5-го куска начинают терзать угрызения совести - надо ведь обобщить. Но это непросто, а так - сделал за 5 минут и забыл (потом правда отловил пару багов). Название: Re: Разбор полученной QString строки от QLineEdit.Срочно Отправлено: Bepec от Сентябрь 19, 2012, 13:43 Ну что сказать - достаточно просто написать классик для себя с разными видами разборов.
Но на такие дела использовать RegExp - меня гложут смутные сомнения в правильности подобного. PS и если нужен будет чуть другой - придётся таки переписывать RegExp. Название: Re: Разбор полученной QString строки от QLineEdit.Срочно Отправлено: Igors от Сентябрь 19, 2012, 14:00 Ну что сказать - достаточно просто написать классик для себя с разными видами разборов. Цитировать - у меня проездной :) Вот у меня такое чувство что Вашего классика я не увижу (будете торговаться и.т.п.). Или я неправ? :) - предъявляем! Название: Re: Разбор полученной QString строки от QLineEdit.Срочно Отправлено: kip_one от Сентябрь 19, 2012, 17:32 Верес с вашей помощью все получилось, хотя и попробовал использовать QRegExp, но с ним работать сложнее(как для меня).
Только не получается рисовать по отрицательным координатам. У есть идеи? :) Название: Re: Разбор полученной QString строки от QLineEdit.Срочно Отправлено: Bepec от Сентябрь 19, 2012, 18:36 А ты не рисуй по отрицательным. Отрицательные координаты = выход за предел области рисования. Значит пользователь всё равно их не увидит => нафиг надо рисовать :)
to Igors: могу переслать, но у меня в нём пока только 2 функции - выдирают значение между 2 сепараторами и/или выдирают список строк между сепараторами. Других функций пока нет, ибо написать что-то подобное этой задаче - дело минуты + минут 20 на проверку и написание теста (если очень надо). PS помоему РегЕксп - это танк. А применять танк когда нужен удар ладошкой - немного не то :) Название: Re: Разбор полученной QString строки от QLineEdit.Срочно Отправлено: kip_one от Сентябрь 19, 2012, 19:09 Я рисую линию на QGraphicsScene, так вот когда я ставлю координаты 0,0 и размеры 1,1 - точка получается по центру, а вот когда уже
питаюсь нарисовать другую линию - центр смещается. Название: Re: Разбор полученной QString строки от QLineEdit.Срочно Отправлено: kip_one от Сентябрь 19, 2012, 19:16 Значит выставил нулевые координаты с помощью sceneRect, и нулевые координаты стали в левый верхний угол
|