Bonjour,
J'ai un problème d'enregistrement de donnée a vous soumettre.
Je dois enregistrer des données 'byte - int - long' dans un fichier séquentiel. La longueur totale d'une trame est de 759 byte. Or lors de la lecture des trames je n'obtient pas le résultat excompté, pire j'ai des blanc qui s'ajoute dans les premiers paquets de données.
Il ya donc quelque chose que je n'ai pas compris ou oublier , Pouvez vous m'aider et m'expliquer pourquoi?

voici la partie du code simplifiée que j'utilise pour enregister le stream.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
FILE* stream;
BYTE buff[8];
int  numwritten ,data1;
long data2;
data1 =100;
data2 =200;
fpos_t pos=0;
 
for ( int i = 0; i < 8; i++ )
         buff[i] = (BYTE) i;
if( (stream = fopen( "file.dat", "w" )) != NULL )
  {
     for ( int i = 0; i < 200; i++ ) // par exemple
    {
       fsetpos( stream, &pos );
       numwritten = fwrite( &buff, sizeof( buff), 4, stream );
       numwritten = fwrite( &data1 , 1, 1, stream );
       numwritten = fwrite( &data2 , 1, 1, stream );
      /* 
       plus les autre champ pour obtenir 759 bytes
       */
 
       fgetpos( stream, &pos );
  }
     fclose( stream );
 }
   else
      printf( "Problem opening the file\n" );
Y a t'il un longueur minimale pour le premier record ou ???
Je vous remercie pour votre aide