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 :
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 ;
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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');
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.
Partager