Russian Qt Forum
Май 18, 2012, 19:54 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: лень писать, хочу метод переворота байтов в переменной.  (Прочитано 775 раз)
soulsaver
Новичок

Offline Offline

Сообщений: 35


« : Январь 17, 2012, 10:24 »

Есть ли что нить такое в qt? типо хлоп и число int i;  которое равно 3 и в шеснадцатиричном виде выглядит так 00 00 00 03, превращается вот в это 03 00 00 00. жизню бы проще на много щас сделало мне. Мечта - функция в качестве аргумента принимает инт, а возвращает его же, но перевернутый ))). Спасибо биг заранее.
« Последнее редактирование: Январь 17, 2012, 10:32 от soulsaver » Записан
Bepec
phpBB Житель матрицы
******
Offline Offline

Сообщений: 1280



« Ответ #1 : Январь 17, 2012, 10:32 »

Лень отвечать, хочу петушка на палочке и стакан холодного сока.
Записан

"Мастер простых решений" © andrew.k
soulsaver
Новичок

Offline Offline

Сообщений: 35


« Ответ #2 : Январь 17, 2012, 10:33 »

а где-то еще есть питухи на палках? я думал они в сссре остались). ну а если честно, можешь что нить подсказать?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 4122


Жаждущий знаний


« Ответ #3 : Январь 17, 2012, 10:48 »

qToBigEndian, qToLittleEndian
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.

С уважением.
Пантер.
ecspertiza
Хакер
*****
Offline Offline

Сообщений: 630


С уважением, мастер конфетного цеха!


« Ответ #4 : Январь 17, 2012, 10:54 »

а где-то еще есть питухи на палках? я думал они в сссре остались).

офф. у нас в супермаркетах "Сота" продаются. сам периодически балуюсь.
Записан

soulsaver
Новичок

Offline Offline

Сообщений: 35


« Ответ #5 : Январь 17, 2012, 10:58 »

qToBigEndian, qToLittleEndian
есть контакт. легко и просто. класс. спасибо большое, опять выручил меня. Большое человеческое спасибо, теперь мона работать и радоваться)
Записан
kambala
phpBB Житель матрицы
******
Offline Offline

Сообщений: 1247



WWW
« Ответ #6 : Январь 17, 2012, 11:34 »

если ты пишешь данные в QDataStream, то ему просто надо выставить setEndianess(QDataStream::LittleEndian) и все преобразования будут выполняться автоматически
Записан

K.A.M.B.A.L.A.: Kinetic Artificial Machine Built for Assassination and Logical Analysis
soulsaver
Новичок

Offline Offline

Сообщений: 35


« Ответ #7 : Январь 17, 2012, 11:44 »

если ты пишешь данные в QDataStream, то ему просто надо выставить setEndianess(QDataStream::LittleEndian) и все преобразования будут выполняться автоматически
тоже кул совет). кому нить понадобится, уверен. Но тот мозг который делал структуру dbf3 перевернул все байты в заголовках а имена полей и значения записей нормально вкорячил. и еще некоторые значения там не перевернутые есть, лучше функцией в цикле писать), ну по крайней мере именно в этом случае и именно по моему мнению)). но все равно спасибо, хорошая штука тоже, уверен.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 4122


Жаждущий знаний


« Ответ #8 : Январь 17, 2012, 11:55 »

QDBFRedactor - посмотри, может что-то полезное найдешь. Это я когда-то по работе писал.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.

С уважением.
Пантер.
Akon
Крякер
****
Offline Offline

Сообщений: 300


« Ответ #9 : Январь 17, 2012, 13:08 »

std::reverse<>()
Записан
soulsaver
Новичок

Offline Offline

Сообщений: 35


« Ответ #10 : Январь 17, 2012, 14:34 »

QDBFRedactor - посмотри, может что-то полезное найдешь. Это я когда-то по работе писал.
спасибо )) поглядим). бедняга, тебя полноценный редактор заставили стряпать.. ) мне только выборку и запись по статическому запросу), но все равно общего много. респект тебе.)
Записан
soulsaver
Новичок

Offline Offline

Сообщений: 35


« Ответ #11 : Январь 17, 2012, 14:37 »

std::reverse<>()
пасип) и это потестим). правда тут лишний заголовочный придется подключать). но если вдруг писать консольную прогу как раз кстати будет.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 4122


Жаждущий знаний


« Ответ #12 : Январь 17, 2012, 14:37 »

спасибо )) поглядим). бедняга, тебя полноценный редактор заставили стряпать.. ) мне только выборку и запись по статическому запросу), но все равно общего много. респект тебе.)
Не заставляли - сам сделал. Просто нет нормальных кроссплатформенных свободных редакторов DBF. Жаль, что так и не закончил.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.

С уважением.
Пантер.
soulsaver
Новичок

Offline Offline

Сообщений: 35


« Ответ #13 : Январь 17, 2012, 14:50 »

сори что в этой же теме.. но у меня походу мозг уже не пашет, короче перевернутое 32х битное int число считываю побайтно и склеиваю его с помощью оператора смещения(dbfInfo это QByteArray):
Код
C++ (Qt)
dbfRecordsNumb = dbfInfo.at(4) + (dbfInfo.at(5) << 8) + (dbfInfo.at(6) << 16) + (dbfInfo.at(7) << 24);
 
все пучком пашет. считываю 16ти битное int число (тоже перевертыш):
Код
C++ (Qt)
dbfHeaderSize=dbfInfo.at(8)+ (dbfInfo.at(9)<< 8);
 
получаю какой-то бред, даже не могу понять откуда он это берет.... то что в этих индексах массива байтов лежат именно те байты которые мне нужны я уверен, проверил раз 700.))) уверен что-то глупое является причиной, только не могу этого увидить, сори за растерянность заранее(.
« Последнее редактирование: Январь 17, 2012, 15:04 от soulsaver » Записан
soulsaver
Новичок

Offline Offline

Сообщений: 35


« Ответ #14 : Январь 17, 2012, 16:22 »

ужас)). короче исходные байты 81 00, после переворота показанного выше должно получиться 00 81, но получается FF FF FF 81... причем если я даже записываю в файл байт:
Код:
QDataStream<<dbfInfo.at(8);
(в нем находится значение 81) записывается не 81, и даже не FF 81 а FF FF FF 81.... это значит хватит работать? у меня параноя? или я нашел баг Qt? или я действительно что-то упускаю, ну оооочень жирное!!
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  

Страница сгенерирована за 0.084 секунд. Запросов: 22.