Название: Как поместить 4-х значные числа с нулем вначале в вектор? Отправлено: SpaceRabbit от Сентябрь 11, 2012, 15:41 Помогите пожалуйста совсем начинающему,
если вкратце, то в QLineEdit вводится закодированный текст (HEX), перегоняется в asci и в итоге помещается в QByteArray, вытаскиваю оттуда число вида "0450" и мне нужно сравнить его с заданным диапазоном чисел, как лучше всего это сделать? Диапозон числ: 0200 - 4000, шаг 10. Проблема в том, что я не знаю, как в вектор поместить числа с нулем в начале, и как потом сравнить.. т.е. число из массива qbMessage.mid(pos+1, 4) нужно сравнить с диапазоном Название: Re: Как поместить 4-х значные числа с нулем вначале в вектор? Отправлено: mutineer от Сентябрь 11, 2012, 15:50 "0450" - это число или строка? Если строка, то проблемы не понял, если число, то тем более
Название: Re: Как поместить 4-х значные числа с нулем вначале в вектор? Отправлено: SpaceRabbit от Сентябрь 11, 2012, 16:25 "0450" - это число или строка? Если строка, то проблемы не понял, если число, то тем более ну получается это последовательность байтов массива QByteArray, возвращаю функцией Код: QByteArray QByteArray::mid ( int pos, int len = -1 ) const А ка вектор то заполнить так QVector(0200, 0210, 0220, 0230,... Название: Re: Как поместить 4-х значные числа с нулем вначале в вектор? Отправлено: mutineer от Сентябрь 11, 2012, 16:33 Не понял что тебе надо
Название: Re: Как поместить 4-х значные числа с нулем вначале в вектор? Отправлено: SpaceRabbit от Сентябрь 11, 2012, 16:44 Не понял что тебе надо я уже сам запутался..в QLineEdit ввожу строку (последовательность кодов в hex, типа "30 34 30 35...") Код: //сохраняю строку из QLineWdit в массив QByteArray Название: Re: Как поместить 4-х значные числа с нулем вначале в вектор? Отправлено: mutineer от Сентябрь 11, 2012, 17:12 А чем принципиально int со значением 450 отличается от int со значением 0450? (мы же про десятичное значение?)
и чем сравнение с 0200 - 2000 отличается от сравнения 200 - 2000? (опять же, если это десятичные значения) Название: Re: Как поместить 4-х значные числа с нулем вначале в вектор? Отправлено: SpaceRabbit от Сентябрь 11, 2012, 17:36 А чем принципиально int со значением 450 отличается от int со значением 0450? (мы же про десятичное значение?) по условию, код вводится по-байтово, для это числа отводится 4 байта, ТО, если я уберу "0" из строки ввода(значение 30), то я ввожу грубо говоря не ту информациюи чем сравнение с 0200 - 2000 отличается от сравнения 200 - 2000? (опять же, если это десятичные значения) Название: Re: Как поместить 4-х значные числа с нулем вначале в вектор? Отправлено: mutineer от Сентябрь 11, 2012, 17:38 Я ж не про ввод. Вот взял ты ввод, перевел его в int и получил значение 450. Что в этом неправильно?
Название: Re: Как поместить 4-х значные числа с нулем вначале в вектор? Отправлено: Serr500 от Сентябрь 11, 2012, 21:01 Проблема в том, что я не знаю, как в вектор поместить числа с нулем в начале, и как потом сравнить.. Код: QByteArray::append('\0'); Я ж не про ввод. Вот взял ты ввод, перевел его в int и получил значение 450. Что в этом неправильно? Преподаватель погрозил пальчиком и сказал, что это неправильно. ;)Название: Re: Как поместить 4-х значные числа с нулем вначале в вектор? Отправлено: Bepec от Сентябрь 11, 2012, 21:07 Простой ответ - обёртывать получаемые int'ы и приводить их к нужному тебе виду.
Аля 450(int) => "450"(QString) => if(size<4) => prepend("0") :) Название: Re: Как поместить 4-х значные числа с нулем вначале в вектор? Отправлено: SpaceRabbit от Сентябрь 11, 2012, 22:55 Цитировать Преподаватель погрозил пальчиком и сказал, что это неправильно. да нет, универ уже закончил))у меня новый вопрос, как сделать ограничение на ввод только hex в поле? делаю так, но пробелы не поставить.. Код: QRegExp rx("(0x([0-9A-F]{1,2}))+"); Название: Re: Как поместить 4-х значные числа с нулем вначале в вектор? Отправлено: Bepec от Сентябрь 11, 2012, 23:03 Маску задавай.
Название: Re: Как поместить 4-х значные числа с нулем вначале в вектор? Отправлено: mutineer от Сентябрь 11, 2012, 23:09 Добавь в регексп после двух цифр один пробел
Название: Re: Как поместить 4-х значные числа с нулем вначале в вектор? Отправлено: SpaceRabbit от Сентябрь 11, 2012, 23:31 Добавь в регексп после двух цифр один пробел спасибо, получилось, а вот через маску нет, можно пример? |