Russian Qt Forum

Qt => Вопросы новичков => Тема начата: rundir от Февраль 24, 2011, 13:01



Название: Как считать из файлу Binary дату?
Отправлено: rundir от Февраль 24, 2011, 13:01
Добрый день

На линуксе у меня крутится приложение которое получает на сокет информацию в бинарном виде, я ее обрабатываю и складываю в БД. А необработанную я помещаю в файл.

Потом этот файл я скопировал на виндоус и хочу еще раз обработать эту информацию, но у меня не получается считать правильно. вместо нужных мне 23х байт, считывается 35. потому как обрабатывает байты неправильно.

Как правильно решить такую задачу?


Название: Re: Как считать из файлу Binary дату?
Отправлено: Пантер от Февраль 24, 2011, 13:03
Без кода ничего сказать нельзя.


Название: Re: Как считать из файлу Binary дату?
Отправлено: rundir от Февраль 24, 2011, 13:09
Вот таким вот образом я записываю в файл на линуксе.
Код:
  
QFile fd("/tmp/gps_271010.log");
  if(!fd.open(QIODevice::Append))
  {
  qDebug()<<"ERROR FILES";
  }
QTextStream out(&fd);

  tmp=getString(i,buffer,buffer.size());
   qDebug() <<"SIZE: "<< buffer.size()<<"\nRed data from client\n" << "\nEND data\n";

  out<< QDateTime::currentDateTime().toString()<<":: "<<buffer.size()<<"::"<<buffer<<"::\n";
//  fd.writeData(buffer.data(),buffer.size());
  fd.close();

Вот тут экспериментировал со считыванием
Код:
QFile fd(fileName);
    if(!fd.open(QIODevice::ReadOnly))
    {
          msgBox.setText("Error open file");
          msgBox.exec();
     }
    qint64 len = fd.bytesAvailable();
    char *ss = new char [len];
    uint l= len;
    QDataStream stream( &fd );

    stream.readBytes(ss, l);
    QByteArray wBData(ss);
    delete [] ss;
    wBData=fd.readAll();

    //stream.readBytes();
    QByteArray line,date,size,code;
    const QByteArray code_tmp;


Название: Re: Как считать из файлу Binary дату?
Отправлено: Пантер от Февраль 24, 2011, 13:23
Гхм. Записываешь через QTextStream, а пытаешься читать через QDataStream. Разницу видишь?
Цитировать
Red data from client
Красные данные от клиента... :)


Название: Re: Как считать из файлу Binary дату?
Отправлено: rundir от Февраль 24, 2011, 14:07
Дык, это получается, что я неправильно записываю.  QTextStream не записывает в бинарном виде?


Название: Re: Как считать из файлу Binary дату?
Отправлено: Пантер от Февраль 24, 2011, 14:15
Нет. QTextStream какбэ намекает. ;)


Название: Re: Как считать из файлу Binary дату?
Отправлено: rundir от Февраль 24, 2011, 14:20
Спасибо:)
щас своими кривыми руками попробую переделать