BMP à SHP - Ecriture de n bytes ds un fichier, Taille réelle : n+1 - C++ - Programmation
Marsh Posté le 02-03-2004 à 18:00:27
Taz a écrit : détruit ce sujet |
Pour qu'il ne se tappe pas la honte en découvrant qu'il a ouvert son fichier en mode texte au lieu de mode binaire ?
Ha le bonheur du mode texte sous Windows, qui transforme tous les 0D et les 0A en 0D0A
Marsh Posté le 02-03-2004 à 18:10:49
Effectivement, c mieux ainsi fopen(name, "wb" )
Marsh Posté le 02-03-2004 à 19:12:14
http://forum.hardware.fr/hardwaref [...] -47212.htm
Sujet à double !
Marsh Posté le 02-03-2004 à 19:44:25
en plus c'est honteux
Marsh Posté le 02-03-2004 à 17:55:10
(Précision qui n'apporte rien à la compréhension du pb, mais à la curiosité d'ordre générale:
J'ecris un fichier au format .shp à partir d'un bmp)
Pour écrire mon fichier shp qui contient des int et des doubles, j'utilise respectivement fwrite(&unInt, 4, 1, fich) et fwrite(&unDouble, 8, 1, fich), avec un swap de mes octets, en fonction du Byte Order.
Jusque là no souci.
J'en ecris quelques uns dans mon fichier test, 60 int, et 26 double
Ce qui nous fait si je sais encore compter : 60*4+26*8 = 268 bytes
Or mon fichier de sortie en contient 269.. Et là ça ne va plus, puisque mon shp n'est plus lisible.
J'edite mon fichier en hexa, et je me rends compte que vient s'insérer le byte 0D entre le 3eme et 4eme byte de mon fichier. Si au hasard je vire ce byte indésirable, mon fichier contient bien sûr 268 bytes, et miraculeusement devient lisible.
D'où peut venir ce 0D (13 en décimale..) à la con en 4eme position ?
---------------
A ver...