Bonjour,
merci pour toute votre aide si précieuse.
Voici mon problème.
//---------
Si je crée un 'record':
//-------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Type TyStructure = Record Entier16 : Word; // 2 octets Double64 : double; // 8 octets End;
et que je sauve ces valeurs dans un fichier.
//--------------
//-----------------
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 Const NomFichier = './Fichier01.bin'; Type TyStructure = Record Entier16 : Word; // 2 octets Double64 : double; // 8 octets End; procedure TForm1.BtnSaveStructClick(Sender: TObject); var FSource : TFileStream; // Fichier source Structure : TyStructure; begin FSource:=TFileStream.Create(NomFichier, fmCreate); // ouvre le fichier d'entrée en Stream File try Structure.Entier16:=$1122; // entier sur 16 bits Structure.Double64:=100; // réel sur 64 bits Fsource.Write(Structure, SizeOf(Structure)) finally if assigned(FSource) then FreeAndNil(FSource); end; end;
je retrouve dans le fichier:
- 2 octets ''22 11"
puis 6 octets de bourrage indéfini,
puis mon double de 8 octets.
//------------------
ce ne serait pas très grave si je devais recharger les données comme je les ai sauvées.
//------------------
//------------------
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 procedure TForm1.BtnRestoreStructClick(Sender: TObject); var FSource : TFileStream; // Fichier source Structure : TyStructure; begin Structure.Entier16:=0; Structure.Double64:=0; FSource:=TFileStream.Create(NomFichier, fmOpenReadWrite); // ouvre le fichier d'entrée en Stream File try Fsource.Read(Structure, SizeOf(Structure)) finally if assigned(FSource) then FreeAndNil(FSource); end; end;
Le problème, c'est que la structure à été sauvée par un autre logiciel et que le résultat dans le fichier
sauvé est 2 octets (Word), suivit de 8 octets (double) sans octet de bourrage.
//------------------
y a t'il un moyen de restaurer une structure sans octet de bourrage à 8 octets.
//------------------
//------------------
je précise que j'ai simplifié à l’extrême pour montrer le problème et que la structure réelle que je veux restaurer
fait 1024 octets avec des chaines de caractères, des entiers signés ou non en 16 et 32 bits et des réels au format double.
//----------------------
Merci par avance et bonne journée
Partager