Laden...

Binary-Writer/-Reader 2.0

Erstellt von Floste vor 15 Jahren Letzter Beitrag vor 15 Jahren 3.445 Views
Floste Themenstarter:in
1.130 Beiträge seit 2007
vor 15 Jahren
Binary-Writer/-Reader 2.0

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>

Projekte:Jade, HttpSaver
Zum Rechtschreiben gibts doch schon die Politiker. Aber die bauen auch nur mist!