Lecture de fichiers binaires
Bonjour,
J'ai un gros soucis. Je m'explique:
J'essaye depuis un moment déja de lire des fichiers binaires avec un format particulier. En effet ces fichiers sont écrits à l'aide d'un programme Java ( donc big endian ) de plus il y a des entiers codés sur 3 octets and co.
Le soucis c est que je n'arrives pas , même avec des exemples a comprendre et à faire fonctionner.
Le format du fichiers est le suivant :
-1 header de 8192 bytes décomposés en 2 parties servant d'index de données:
-Une première section de 4096 octets composé de 1024 séries de 4 octets
les 3 premiers octets donnent l'offset et le dernier donnant le nombre de secteurs des données ( 1 secteur = 4096 octets )
-Une deuxième section compressant 1024 séries de 4 octets donnant le timetstamp depuis la dernière modification des données ( 4 octets )
-le reste du fichiers étant les données donc l'index est fourni grâce aux headers.
Pour info, ce sont la structure des fichiers "regions" de minecraft. Des infos plus claires sur la structure du fichiers est dispo à cette adresse.
Si quelqu'un pouvez m expliquer comment je dois m y prendre parce que ca m ennuie vraiment. J'ai tout essayé avec des streams ( donc facon c++) avec des FILE facon c, en mélangeant les deux.
A chaque fois je me retrouver avec des retours totalement foireux genre des offsets plus grand que le fichiers lui meme et d autres joyeusetés.
J'ai l impression que c est peux être du au faites que le fichier est écrit en java parce je n ai jamais eu ce genre de problèmes.
Pour information je sous VS2010 ( quelque fois que cela change quelque chose ).
Cordialement Mathieu