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.
Y a t'il un longueur minimale pour le premier record ou ???
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" );
Je vous remercie pour votre aide
Partager