Название: QByteArray to int/short (прочитать и разобрать 3ds файл.) Отправлено: ieroglif от Июль 31, 2009, 11:55 пишу такой код
Код: QFile f(fileName); на выходе получаю "0 false" в то время как два символа там находящиеся - это "MM". как их конвертнуть что бы получить сравнение с 0x4D4D ? Название: Re: QByteArray to int/short (прочитать и разобрать 3ds файл.) Отправлено: spectre71 от Июль 31, 2009, 12:42 пишу такой код :DКод: QFile f(fileName); на выходе получаю "0 false" в то время как два символа там находящиеся - это "MM". как их конвертнуть что бы получить сравнение с 0x4D4D ? "MM" - не является 16-чным представлением числа в строке! Естественно будет FALSE Название: Re: QByteArray to int/short (прочитать и разобрать 3ds файл.) Отправлено: ieroglif от Июль 31, 2009, 12:54 пишу такой код :DКод: QFile f(fileName); на выходе получаю "0 false" в то время как два символа там находящиеся - это "MM". как их конвертнуть что бы получить сравнение с 0x4D4D ? "MM" - не является 16-чным представлением числа в строке! Естественно будет FALSE Название: Re: QByteArray to int/short (прочитать и разобрать 3ds файл.) Отправлено: f-r-o-s-t от Июль 31, 2009, 13:02 Он и ответил, как ты можешь "ММ" конвертнуть в 16ое число ?
Название: Re: QByteArray to int/short (прочитать и разобрать 3ds файл.) Отправлено: denka от Июль 31, 2009, 13:11 Код: short dest; Название: Re: QByteArray to int/short (прочитать и разобрать 3ds файл.) Отправлено: spectre71 от Июль 31, 2009, 13:13 1) Если что не получается смотри доку по методам которые используешь.
2) Учи C++ Ответ на твой вопрос неодназначен! Что такое "ММ"? А если будет "AB" и "BА" - какой порядок байт должен быть? Один из вариантов: Код
Название: Re: QByteArray to int/short (прочитать и разобрать 3ds файл.) Отправлено: spectre71 от Июль 31, 2009, 13:22 Код: short dest; Скорее так short dest = *((short*)fileData.mid(0,sizeof(short)).data()); Название: Re: QByteArray to int/short (прочитать и разобрать 3ds файл.) Отправлено: Alex Custov от Июль 31, 2009, 13:41 автор читает бинарное представление, с чего вы взяли, что MM - это текстовое 16-ричное число? :)
ieroglif, функции toInt() и прочее предполагают, что в bytearray-e хранится текстовое представление числа, а не бинарное. Spectre показал как надо читать. Название: Re: QByteArray to int/short (прочитать и разобрать 3ds файл.) Отправлено: f-r-o-s-t от Июль 31, 2009, 13:42 автор читает бинарное представление, с чего вы взяли, что MM - это текст? :) Но преобразует то он именно из строки, по этому и сказали.Название: Re: QByteArray to int/short (прочитать и разобрать 3ds файл.) Отправлено: ieroglif от Июль 31, 2009, 15:24 Spectre, спасибо. документацию читаю, язык учу, но всё сразу не получается.
AX, спасибо за понимание. Название: Re: QByteArray to int/short (прочитать и разобрать 3ds файл.) Отправлено: romank от Июль 31, 2009, 16:01 Здесь можно изучить исходник загрузки 3DS
http://www.gamedev.ru/code/faq/?id=3576 (http://www.gamedev.ru/code/faq/?id=3576) Видимо так и сравнивается == 0x4D4D |