Предположим, ваш формат:
struct Format
{
struct Header // 1
{
byte a;
bool b1, b2, b3, b4, b5, b6, b7, b8;
string name;
}
struct Container // 1...*
{
MyTypeEnum Type;
byte[] data;
}
}
enum MyTypeEnum
{
Sound,
Video,
Image
}
Тогда у меня будет последовательный файл с:
байт // a
байт // b
int // имя размера
char [] // name (размер которого указан выше, помните, что в .NET символ 16 бит)
int // MyTypeEnum type
int // размер данных
байт [] // данные (размер которых указан выше)
Затем вы можете повторить последние три строки столько раз, сколько хотите.
Для чтения вы используете BinaryReader
, который поддерживает чтение байтов, целых чисел и серий байтов. Существует также BinaryWriter
.
Кроме того, помните, что Microsoft .NET (таким образом, на компьютере с Windows / Intel) имеет младший порядок. Так же как и BinaryReader
и BinaryWriter
.