Bonjour à tous,
Je me permets de lancer une nouvelle discussion car ne suis pas parvenu à trouver la réponse à ma question, qui pourtant ne doit pas être bien compliquée...
Je réalise actuellement un outil de conversion de fichier pour transformer des fichiers XML en fichier binaire.
Voici mon problème:
Je cherche à former un octet de ce type: 0 V Id
- "V" est une valeur en hexadécimal (ici, "0" ou "1") que je vais récupérer dans une balise de mon fichier XML.
- "Id" est une valeur hexadécimale que je récupère dans une grammaire associé à mon fichier XML.
Pour se faire, j'utilise des masques et le code suivant:
Cependant, lorsque j'affiche le résultat de var_hexa,, j'obtiens une suite de caractère spéciaux me laissant penser à un souci de format. Ma première idée était de me dire que la variable var devait être récupérée en ASCII et qu'il fallait que je la transforme en hexa pour effectuer le traitement avec les masques. Mais j'avoue être un peu perdu d'où le fait que je vous sollicite.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 // Récupération de l'identifiant xmlChar *id = NULL; id = xmlGetProp( current, (const xmlChar*)"id"); // Récupération de la variable "var" à l'aide d'une fonction retournant un xmlChar* xmlChar *var = NULL; var = get_child_node_content((xmlNode *)xpathObj_value, &path_current[0], 1); char *var_hexa; // On positionne le bit 7 à "0" ou "1" en fonction de la valeur de "var" et on ajoute l'identifiant à l'octet *var_hexa = ( *id & 0x3F) | (7<<( *var & 1) );
J'espère avoir été clair, et que vous arriverez a me sortir de ce petit souci (qui devient urgent... ^^)
Merci et bonne journée
Partager