Запись структуры в файл - Как сделать так, чтобы в файл записывались только данные структуры? - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте!
Листинг программы
  1. using System.Runtime.Serialization.Formatters.Binary;
  2. [Serializable]
  3. public struct wav
  4. {
  5. public char a;
  6. public ulong b;
  7. }
  8. wav w = new wav();
  9. w.a = "a";
  10. w.b = 10;
  11. FileStream fs = new FileStream("rec.dat", FileMode.Create);
  12. BinaryFormatter bf = new BinaryFormatter();
  13. bf.Serialize(fs, wav);
  14. ...
При записи в файл этой структуры, в файл также записывается куча иной служебной информации. Как сделать так, чтобы в файл записывались только данные структуры?

Решение задачи: «Запись структуры в файл - Как сделать так, чтобы в файл записывались только данные структуры?»

textual
Листинг программы
  1. using System.Runtime.InteropServices;
  2.  
  3. // и далее где-то в Вашем коде:
  4. int size = Marshal.SizeOf(typeof(wav));
  5.  
  6. wav item = new wav();
  7. item.a = 'a';
  8. item.b = 100500;
  9.  
  10. IntPtr ptr = Marshal.AllocHGlobal(size);
  11. Marshal.StructureToPtr(item, ptr, false);
  12.  
  13. byte[] structureData = new byte[size];
  14. Marshal.Copy(ptr, structureData, 0, size);
  15.  
  16. Marshal.FreeHGlobal(ptr);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.167 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы