Пример #1
0
        protected override void ReadSections(BinaryReaderWriter br)
        {
            // --------- Dateiabschnitte für die Rohdaten bilden ---------
            Filesections.AddSection((int)InternalFileSections.ContentsBlock, new DataBlock(ContentsBlock));

            // GapOffset und DataOffset setzen
            SetSpecialOffsetsFromSections((int)InternalFileSections.PostHeaderData);

            if (GapOffset > HeaderOffset + Headerlength) // nur möglich, wenn extern z.B. auf den nächsten Header gesetzt
            {
                PostHeaderDataBlock = new DataBlock(HeaderOffset + Headerlength, GapOffset - (HeaderOffset + Headerlength));
                Filesections.AddSection((int)InternalFileSections.PostHeaderData, PostHeaderDataBlock);
            }

            // Datenblöcke einlesen
            Filesections.ReadSections(br);

            // Pos. der anderen beiden Datenblöcke ermitteln ...
            Decode_ContentsBlock(Filesections.GetSectionDataReader((int)InternalFileSections.ContentsBlock), new DataBlock(0, Filesections.GetLength((int)InternalFileSections.ContentsBlock)));
            // ... und einlesen
            Filesections.Read((int)InternalFileSections.DescriptionBlock, br);
            Filesections.Read((int)InternalFileSections.CharacterLookupTableBlock, br);
        }