Beschreibung:
Dieses Snippet schreibt primitive Typen(ints,chars u.s.w),Arrays,und Strukts möglichst 1:1 in einen Stream (keine header). Dabei kann die Endianreihenfolge angepasst werden.
Das ist besonders Praktisch, wenn man viele Punkte, Vektoren o.ä. Binär in eine Datei schreiben will. Außerdem kann man ein Strukt definieren, das den gleichen Aufbau, wie ein Teil der Datei hat und so die Daten bequem schreiben /lesen.
Klassen können nicht geschrieben werden. Ringförmige Referenzen führen zu einem Stackoverflow.
Arrays werden mitsamt Inhalt genau dahin geschrieben, wo sie im Strukt definiert sind und der Rest des Strukts wird dann hinter Das array geschrieben. Beim Schreiben von Arrays wird die Länge als 32bit-Zahl vorangestellt. Auch Strings werden auf diese Weise als Chararray geschreiben, was in einem zum normalem BinaryWriter inkompatiblen Stringformat resultiert. Man kann aber beide abwechselnd verwenden.
Beispiel zur Verwendung:
struct BitmapHeader
{
public ushort formatIdentifier;
public uint fileSize;
public uint reserved;
public uint offsetBits;
}
...
BitmapHeader header=...
...
StructWriter structWriter = new StructWriter(stream,true);//true für little endian als Ausgabeformat, false für big endian
structWriter.Write(header);
structWriter.Write(...);
Schlagwörter: <Bitte Schlagwörter, unter denen das Snippet über die Suche gefunden werden soll, hier eintragen>