Delphi et ressources .res
Je crée par un programme des données correspondant à un record de taille variable du type
Code:
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
Citation:
identification_1 RCDATA "FILENAME"
b- et l’exécution de la batch
Citation:
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:
Code:
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; |
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().
Je vous remercie pour vos réponses.