Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Serialisation XML d'un byte dans un fichier au format hexa ? [ Windows / Autre ] (billou_13)

vendredi 3 août 2007 à 11:31:02 | Serialisation XML d'un byte dans un fichier au format hexa ?

billou_13

Membre Club

Bonjour, bonjour ^^

Une t'chite question en ce beau mois d'Août qui ne devrait pas être si terrible que ça à résoudre.

J'ai un objet classique comme ceci:

public class Octet
{
   private byte _value;
   public byte Value { get { return _value; } set { _value=value; } }

   public Octet(byte value)
   {
      _value = value;
   }
}

Et comme j'aime bien le XML, j'utilise le XmlSerializer pour sauvegarder mes objets "Octet":
Octet curObj = new Octet(0x1A);
XmlSerializer serial = new XmlSerializer(typeof(Octet));
TextWriter writer = new StreamWriter("C:\TEMP\Test.xml");
x.Serialize(writer, curObj);


Tout cela marche très bien. Cependant, mon petit souci vient du fait que la valeur (value) de mon objet Octet est sauvegardé en décimal. C'est à dire que pour l'exemple:
 Il sauvegarde la valeur "26" dans le fichier Xml.

Ma question est donc, est-ce qu'il y a un moyen de sauvegarder la valeur en octet dans le fichier (valeur "0x1A" plutot que "26") ?
Peut-être une surcharge au niveau du XmlSerializer ?

Merci d'avance et très bon mois d'Août à tous,


Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------


vendredi 3 août 2007 à 11:37:52 | Re : Serialisation XML d'un byte dans un fichier au format hexa ?

SharpMao

Membre Club
Hello,

Comme tu le dis si bien "Connaître la réponse est une chose, savoir pourquoi en est une autre"

Oui, c'est possible, mais pourquoi veux-tu le faire ?

26 et 0x1A représentent la même chose.

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)

vendredi 3 août 2007 à 11:51:03 | Re : Serialisation XML d'un byte dans un fichier au format hexa ?

Bidou

Administrateur CodeS-SourceS
Réponse acceptée !
Euh oui c'est effectivement possible, mais je n'en vois pas l'utilité non plus...
Si tu veux vraiment le faire, le plus simple c'est peut-être d'avoir un string qui représent ton octet...

[

XmlIgnore()]
publicbyte Value
{
  
get { return _value; }
  
set { _value = value; }
 }

publicstring Value1
{
  
get { returnstring.Format("0x{0:X}", _value); }
  
set { ... }
}
Lourd pour rien si tu veux mon avis !
Peut-être qu'on peut faire mieux mais même dans ce cas je n'en verrais pas l'utilité...



-Blog-

vendredi 3 août 2007 à 13:40:59 | Re : Serialisation XML d'un byte dans un fichier au format hexa ?

billou_13

Membre Club
(Désolé pour ma dernière réponse, y'a du avoir une erreur, on voit rien)

Merci à vous,

C'est tout simplementd'un point de vue pratique. Je fais un logiciel de
communication qui envoie des trames d'octets. La sauvegarde des trames doit
donc etre explicite visuellement.
Et si les utilisateurs doivent sortir la calculatrice windows à chaque fois
qu'ils veulent ajouter une trame, c'est pas terrible et ca passera pas. Ils
seront saouler ^^

Je vous remercie en tout cas pour la réponse, j'y avais pas pensé mais je
vais passer par un stringValue comme cité ci-dessus.

Bonne fin de journée,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------

vendredi 3 août 2007 à 18:08:22 | Re : Serialisation XML d'un byte dans un fichier au format hexa ?

billou_13

Membre Club
Réponse acceptée !

J'ai trouvé une autre solution comme je pensais.

Il suffit de faire dérivé la classe de l'interface IXmlSerializable et d'en implémenter les méthodes. Résultat: on gère tout. Ce qui donne le code

//Namespaces à ajouter
using System.Xml;
using System.Xml.Schema;
using System.Xml.Serialization;
//--

public class Octet : IXmlSerializable
{
   private byte _value = 0x00;
   public byte Value { get { return _value; } set { _value=value; } }

   //Je ne sais plus si ce constructeur est obligatoire pour la sérialisation XML
   public Octet()
   {
   }

   public Octet(byte value)
   {
      _value = value;
   }

   //Méthode qui sert pour la sérialisation en fichier XML (appelé lors du XmlSerializer.Serialize(...))
   public void WriteXml(XmlWriter writer)
   {
      writer.WriteElementString("Hexa", string.Format("0x{0:X2}", _value));
   }

   //Méthode pour la désérialisation du fichier XML (appelé lors du XmlSerializer.Deserialize(...))
   public void ReadXml(XmlReader reader)
   {
      _value = Convert.ToByte(reader.ReadElementString("Hexa"), 16);
   }

   //Obligatoire par l'interface, je ne sais pas totalement à quoi elle sert (dans le doute, je m'abstiens ^^)
   public XmlSchema GetSchema()
   {
      return (null);
   }
}

Et voila ^^

Bon week-end à tous,


Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------




Cette discussion est classé dans : fichier, octet, xml, byte, value


Répondre à ce message

Sujets en rapport avec ce message

URGENT Comment creer un fichier XML avec c# [ par titio069 ] Bonjours et merci de votre aide. Voila le probleme.  J'ai un fichier xml a créer en c# (de preference) ou en vb.net. Je dois mettre des valeur d'une r Sérialiser une arraylist [ par el_teedee ] Bonjour, alors, je viens de découvrir la sérialisation et juste après, j'ai découvert arraylist dont je ne méttais jamais servi. Ce que je souhaite Problème XML/XSD [ par granghon ] Bonjour,Je ne suis pas sur de poser ma question sur le bon thème mais c'est celui qui à mon goût s'en rapproche le plus.J'utilise un fichier XML pour [c#] Validation XSD imbriqués [ par muvperrin ] bonjour à tous je dois valider un fichier xml en fonction de son fichier xsd puis remplir un dataset avec ce fichier xml ... j'ai réussi la validati Datagrid et plusieurs fichiers XML [ par sergio297 ] Salut a tous,Je debute avec C#.NET, merci d'etre indulgent...J'ai un certain nombre de fichiers XML dont la structure est la meme. Mon but est de cree créer un fichier xml avec XmlTextWriter [ par dd8dd ] je voudrai créer un fichier SMIL qui est basé sur xml avec XmlTextWriter; mon probleme est avec WriteStartDocument qui m'exige l'entete "xml v1.0" alo Dll Path [ par edokt ] Bonjour a tous Voila la question que j'ai J'ai creé une Dll a partir C# - Projet - Bibliothèque de classes Dans la dll j'utilise un fichier xml que recherche doc xml c# [ par kakol ] Bonjour,Je suis a la recherche de documentations ou tutoriaux avec exemples expliquant comment lire des fichier xml en c#, et surtout comment recupere Vérifier la syntaxe d'un xml avec un xsd [ par t_barbillon ] Salut, Est ce qu'il y a un moyen de verifier la syntaxe d'un fichier xml à partir d'un fichier xsd ? Fichier XML [ par fdouieb ] Bonjour, J'ai deux application qui pointe sur le meme fichier "XML". Le problem c'est que j'ai l'erreur qui me signale que le fichier ne peux etre at


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,374 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.