Russian Qt Forum
Ноябрь 26, 2024, 22:47 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Вывод данных в QByteArray QT 3.3.8  (Прочитано 4421 раз)
Примерный ученик
Бывалый
*****
Offline Offline

Сообщений: 450


И это не всегда помогает


Просмотр профиля
« : Март 05, 2011, 15:12 »

Код:
#pragma pack(1)

typedef struct p1
{
short int ka;
long vit;
short int kv;
double d;
char t[60];
} P1;


#pragma pack()

typedef vector <p1> vP1; // вектор Зон видимости

void Form1::calc()
{
  QByteArray ba;
  QDataStream stream(ba,IO_WriteOnly);
  P1 p;
  vP1 vv;
  int ii=0;
  p.ka=32767;
  p.vit=0x0;
  p.kv=32767;
  p.d=0;
  for (short i=0;i<60;i++)
  {
  short j=i&0x000f;
  p.t[i]=j;
  }
  vv.push_back(p);
  p.ka=0;
  p.vit=0xF0F0F0F0;
  p.kv=0;
  p.d=0;
  for (short i=0;i<60;i++)
  {
  short j=i&0x0007;
  p.t[i]=j;
  }
  vv.push_back(p);
  stream.device()->reset();
  ba.resize(0);
  QFile pp("data.ttt");
  pp.open(IO_WriteOnly);
  p=vv[0];
  stream.writeBytes((char *)&p,sizeof(p));
  p=vv[1];
  stream.writeBytes((char *)&p,sizeof(p));
  pp.writeBlock((char *)&ba[0],ii);
  pp.close();
}

перед каждой записью появляются 2 байта, в которых записана длина структуры
Код:
p
т.е. длина полученного файла не 156 байт, а 160.
Как с этим бороться?
Что я не так делаю?
Записан

Как мало времени и как много нужно узнать
crackedmind
Гость
« Ответ #1 : Март 05, 2011, 16:57 »

Попробовать writeRawBytes, вместо writeBytes...
Записан
Примерный ученик
Бывалый
*****
Offline Offline

Сообщений: 450


И это не всегда помогает


Просмотр профиля
« Ответ #2 : Март 05, 2011, 17:39 »

Попробовать writeRawBytes, вместо writeBytes...
Спасибо, сработало Смеющийся
Записан

Как мало времени и как много нужно узнать
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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