Membres inscrits :2359
Membres en ligne : 0
Invités en ligne : 7


|
Conversation (Résolue) : Endian-ness des données |
PaowZ (Membre)
Inscrit le : 04-02-2008
Messages: 16
Snippets: 0
Tutoriels: 0
Hors ligne |
Bonjour,
Je dois composer avec des fichiers de données dont le format est du big-endian et donc, je dois les convertir en little-endian pour pouvoir en exploiter le contenu (ch'ui sur intel). Donc, j'ai tenté d'utiliser la macro wxINT16_SWAP_ON_LE pour traiter ca. Mais le compilo me renvoit: [Warning] statement has no effect
.. et en effet, l'éditeur hexa me raconte que rien n'a changé dans mes données.
V'là le bout de code en charge de ce changement
Code wxWidgets:short* buffer = new short[(fileHGT->Length()/2)]; fileHGT->Read(buffer,(fileHGT->Length()/2)); for(unsigned int i=0;i<(fileHGT->Length()/2);i++) wxINT16_SWAP_ON_LE(buffer[i]);
Vous avez une idée ??
Merci bien.
|
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1390
Snippets: 25
Tutoriels: 6
Site web
Hors ligne |
Salut.
En fait, la macro wxINTxx_SWAP_ON_LE(wxINTxx) te renvoie la valeur convertie. Donc, si tu ne ré-écris pas cette valeur dans le fichier ou dans un nouveau ficher (tu ne la récupères même pas), tu n'obtiendras aucun changement. C'est, je pense, de là que vient le warning "statement has no effect : ce n'est pas une erreur, mais le compilo t'averti que la commande wxINT16_SWAP_ON_LE(buffer[i]); ne sert à rien.
Il faut juste mettre :
Code wxWidgets: for(unsigned int i=0;i<(fileHGT->Length()/2);i++) buffer[i]=wxINT16_SWAP_ON_LE(buffer[i]); Et lorsque le traitement est terminé, tu n'as plusqu'à ré-écrire les données dans le fichier (ou où bon te semblera).
@+ Xav'
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà ... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
|
PaowZ (Membre)
Inscrit le : 04-02-2008
Messages: 16
Snippets: 0
Tutoriels: 0
Hors ligne |
putain, mais quel âne... :S Même pas j'ai pensé à affecter la valeur retournée par la macro, je pensais qu'elle agissait directement à l'adresse fournie en paramètre.. ce noob.. 
Merci bien Xaviou..
Dernière modification par PaowZ (06-02-2008 13:16:27)
|
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1390
Snippets: 25
Tutoriels: 6
Site web
Hors ligne |
C'est souvent les erreurs les plus basiques que l'on a le plus de mal à retrouver.
Bonne continuation à toi. Xav'
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà ... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
|
|