Structure d'un packed array
Bonjour,
mon souci est le suivant :
j'ai des fichiers .dat provenants d'un programme écrit en pascal. Mon but est d'arriver à récupérer les données contenues dans le fichier .dat avec un programme écrit dans un autre langage (Matlab).
Je connais la structure des données, par exemple :
Code:
1 2 3 4 5 6
|
tarc = record (* enregistrement d'un arc *)
numarc : [key(0)] integer ; (* numero de l'arc *)
pkdebarc,pkfinarc : real ; (* pk de debut et de fin de l`arc *)
pol : integer ; (* polarisation de l'arc *)
end ; |
Donc là pas de souci je vais dire à mon programme d'ouvrir le fichier en lecture binaire, puis de lire successivement un entier sur 8 bits, 2 réels sur 32 bits, puis un entier sur 8 bits et recommencer ainsi de suite.
Code:
1 2 3 4 5
|
numarc(i) = fread(fid, 1, 'uint32');
pkdeb(i) = fread(fid,1,'float32');
pkfin(i) = fread(fid,1,'float32');
pol(i) = fread(fid,1,'uint32'); |
Là où je bloque c'est pour arriver à lire ce qui est contenu dans un "packed array". Si j'ai bien compris le fonctionnement des packed arrays, 4 mots de 8 bits se trouvant dans 4 cases de 32 bits vont être regroupés dans une seule case de 32 bits.
Comment puis-je faire pour connaître la façon dont les données ont été organisées ?
Si je dis à ma fonction de lire par blocs de 32 bits je vais non pas me retrouver avec une seule valeur mais 4 :s
Merci pour votre aide.