2010-07-30 5 views
4

J'ai reçu des données (plusieurs fois) qui sont encapsulées dans un struct. ce que je dois faire est de les écrire dans un fichier (binaire) pour restaurer les données. Comment allez-vous le faire?écriture des données de structure dans le fichier binaire

+0

Vous pouvez regarder ceci: http://stackoverflow.com/questions/628843/byte-for-byte-serialization-of-a-struct-in-c –

+0

Avez-vous besoin de l'écrire dans un format spécifique (par exemple pour être lu par un autre programme) ou juste pour que vous puissiez sauvegarder un statut et le lire à nouveau depuis le même programme? Dans le dernier cas, je suggérerais de déclarer la structure [sérialisable] (et tous les types de membres personnalisés) et juste le sérialiser dans le fichier. – Grizzly

+1

J'allais répondre "Laissez-moi Google cela pour vous", mais je peux obtenir de nombreuses upvotes ... – Luiscencio

Répondre

6

Mettre en œuvre ISerializable (personnalisation supérieure) ou marquer avec l'attribut [Serializable] (plus facile à utiliser). Ensuite, utilisez un BinaryFormatter pour sérialiser dans un fichier.

1
public struct MyStruct : ISerializable 
    { 
     #region ISerializable Members 

     public void GetObjectData(SerializationInfo info, StreamingContext context) 
     { 
      throw new NotImplementedException(); 
     } 

     #endregion 

     public override int GetHashCode() 
     { 
      return base.GetHashCode(); 
     } 

     public override bool Equals(object obj) 
     { 
      return base.Equals(obj); 
     } 

     public static bool operator ==(MyStruct m1, MyStruct m2) 
     { 
      return true; 
     } 

     public static bool operator !=(MyStruct m1, MyStruct m2) 
     { 
      return false; 
     } 
    } 
Questions connexes