1 pièce(s) jointe(s)
Ecriture de fichier différente et non reconnue par un logiciel
Bonjour ,
j'explique mon problème , je dois réécrire un logiciel complètement, et à un moment j'écris un fichier binaire qui est ensuite lu par un autre exécutif
J'écris un fichier binaire qui n'est pas reconnu par l'autre exécutif alors que celui écrit par l'ancienne version du logiciel est effectivement reconnu
Ce que j'écris
Avec Qt Creator 4.7.0
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
typedef struct
{
long nombre;
double debut;
double fin;
double pas;
} S_DataHeaderDepointageAntenne;
// Dans les includes
#include <fstream>
#include <streambuf>
#include <iostream>
// dans la fonction d'écriture
fstream fichierOut;
fichierOut.open("fichierDepointageAntenne.bin", ios::out | ios::binary);
if (!fichierOut)
{
cout << "erreur d'ouverture du fichier Depointage Antenne" << endl;
}
else
{
fichierOut.write((char*)&dataHeader, sizeof(S_DataHeaderDepointageAntenne));
fichierOut.flush();
ficherOut.close();
} |
Le code de l'ancienne version qui fonctionne
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| Avec VC6.0
typedef struct
{
long nombre;
double debut;
double fin;
double pas;
} S_DataHeaderDepointageAntenne;
//Dans les includes
#include <fstream.h>
// dans la fonction d'écriture
fstream fichierOut;
fichierOut.open("fichierDepointageAntenne.bin", ios::out, filebuf::openprot);
if (!fichierOut)
{
cout << "erreur d'ouverture du fichier Depointage Antenne" << endl;
}
else
{
fichierOut.setmode(filebuf::binary);
fichierOut.write((char*)&dataHeader, sizeof(S_DataHeaderDepointageAntenne));
fichierOut.flush();
fichierOut.close();
} |
J'ai bien vérifié que j'ai les bonnes informations dans la structure mais le fichier crée n'est pas le même.
Ci-joint le comparatif des deux fichiers binaires , ne regardez que la première ligne , les octets de 4 à 7 sont différents
J'ai essayé de regardé au niveau de la classe filebuf que je n'utilise plus dans ma version du logiciel mais je comprends pas