Je crée par un programme des données correspondant à un record de taille variable du type
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 type xxx = record position, value : double; end; var V = record f1, f2, f3, : double; ndata : integer; data : array of xxx; end; var i : Integer; begin V.ndata:=N; setlength(v.data, N); assignfile(f, FILENAME); rewrite(f,1); blockwrite(f, v.f1,sizeof(double)); blockwrite(f, v.f2,sizeof(double)); blockwrite(f, v.f3,sizeof(double)); blockwrite(f, v.ndata,sizeof(integer)); for i:=0 to v.ndata-1 do blockwrite(f, v.data[i],sizeof(xxx)); closefile(f); end;
après quoi le fichier est mis dans une resource via
a- un fichier YYY.rc contenant la ligne
b- et l’exécution de la batchidentification_1 RCDATA "FILENAME"
brcc32.exe YYY.RC
on dispose alors de YYY.res
Dans un autre programme devant recharger ces données avec la ressource, j'utilise un code du type:
ceci va bien mais je n'arrive pas à transférer le contenu de tmpres dans ma variable H en y assignant les bons champs et setlength().
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 {$R YYY.res} type xxx = record position, value : double; end; var TmpRes : TResourceStream; H : record f1, f2, f3, : double; ndata : integer; data : array of xxx; end; // même structure que celle utilisée pour la création begin ... TmpRes := TResourceStream.Create(HInstance, 'identification_1', RT_RCDATA); ... TmpRes .free(); end;
Je vous remercie pour vos réponses.
Partager