Bonjour,
J'ai un fichier binaire avec la structure suivante:
En-tête: 2 entiers sur 4 octets
- km: pointeur en octet sur le bloc de données
- nvhl
N blocs (N est une valeur connue)
- nvhl couples suivants:
- np: pointeur de début des données
- vp: nombre d'éléments
Données:
pour les bloc de données dont le pointeur est np:
- vi: vecteur d'entiers (de taille vp) sur 2 octets
- pi: vecteur d'entiers (de taille vp) sur 2 octets
Pour l'instant je fais la chose suivante:
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 FileStream fs = new FileStream("monfichier.dat", FileMode.Open, FileAccess.Read); BinaryReader br = new BinaryReader(fs); int np, vp; //lecture en-têtes _AudFic.KM = br.ReadInt32(); //pointeur en octets sur le bloc de données _AudFic.Nvhl = br.ReadInt32(); //nvhl = nsta x nbth = 26880 (si nsta=35 et nbth=96) //boucle sur les stations for (int i = 0; i < N; i++) { //boucle sur les vehicules for (int j = 0; j < _AudFic._nvhl/N; j++) { np = br.ReadInt32(); vp = br.ReadInt32(); } } br.Close(); fs.Close();
Donc à ce stade je lis les en-têtes et les N blocs.
Mon problème est que j'aimerais au moment où je lis np et vp, pouvoir lire les données correspondantes dans la partie "données" du fichier, mais sans perdre ma position courante.
Le but est de stocker dans un objet uniquement les en-têtes et les données.
Merci pour votre aide.
Ben
Partager