Exemplo n.º 1
0
        public override void Write(BinaryReaderWriter bw, uint headeroffset = 0, UInt16 headerlength = 0x5B, uint gapoffset = 0, uint dataoffset = 0, bool setsectiondata = true)
        {
            HeaderOffset = headeroffset;
            if (headerlength > 0)
            {
                Headerlength = headerlength;
            }

            CreationDate = DateTime.Now;

            GapOffset  = gapoffset;
            DataOffset = dataoffset;

            bw.SetEncoding(Codepage);
            bw.Seek(Headerlength);

            Encode_PolygoneData(bw);
            Encode_PolylineData(bw);
            Encode_POIData(bw);
            Encode_Draworder(bw);

            SetSectionsAlign();

            Encode_Header(bw); // Header mit den akt. Offsets neu erzeugen

            Filesections.WriteSections(bw);
        }
Exemplo n.º 2
0
        public override void ReadHeader(BinaryReaderWriter br)
        {
            base.ReadCommonHeader(br, Type);

            Filesections.ClearSections();

            Codepage = br.Read2AsUShort();
            br.SetEncoding(Codepage);

            SortId1 = br.Read2AsUShort();
            SortId2 = br.Read2AsUShort();
            br.ReadBytes(Unknown_x1B);
            Mdr1 = new DataBlockWithRecordsize(br);
            br.ReadBytes(Unknown_x27);
            Mdr2 = new DataBlockWithRecordsize(br);
            br.ReadBytes(Unknown_x35);
            Mdr3 = new DataBlockWithRecordsize(br);
            br.ReadBytes(Unknown_x43);
            Mdr4 = new DataBlockWithRecordsize(br);
            br.ReadBytes(Unknown_x51);
            Mdr5 = new DataBlockWithRecordsize(br);
            br.ReadBytes(Unknown_x5F);
            Mdr6 = new DataBlockWithRecordsize(br);
            br.ReadBytes(Unknown_x6D);
            Mdr7 = new DataBlockWithRecordsize(br);
            br.ReadBytes(Unknown_x7B);
            Mdr8 = new DataBlockWithRecordsize(br);
            br.ReadBytes(Unknown_x89);
            Mdr9 = new DataBlockWithRecordsize(br);
            br.ReadBytes(Unknown_x97);
            Mdr10 = new DataBlock(br);
            br.ReadBytes(Unknown_xA3);
            Mdr11 = new DataBlockWithRecordsize(br);
            br.ReadBytes(Unknown_xB1);
            Mdr12 = new DataBlockWithRecordsize(br);
            br.ReadBytes(Unknown_xBF);
            Mdr13 = new DataBlockWithRecordsize(br);
            br.ReadBytes(Unknown_xCD);
            Mdr14 = new DataBlockWithRecordsize(br);
            br.ReadBytes(Unknown_xDB);
            Mdr15       = new DataBlock(br);
            Unknown_xE7 = br.ReadByte();
            Mdr16       = new DataBlockWithRecordsize(br);
            br.ReadBytes(Unknown_xF2);
            Mdr17 = new DataBlock(br);
            br.ReadBytes(Unknown_xFE);
            Mdr18 = new DataBlockWithRecordsize(br);
            br.ReadBytes(Unknown_x10C);

            if (Headerlength > 0x110)
            {
                Unknown_x110 = new byte[Headerlength - 0x110];
                br.ReadBytes(Unknown_x110);
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// zur Verwendung im Konstruktor
        /// </summary>
        /// <param name="br"></param>
        /// <param name="raw"></param>
        /// <param name="headeroffset"></param>
        /// <param name="gapoffset"></param>
        protected void nonvirtual_Read(BinaryReaderWriter br, bool raw = false, uint headeroffset = 0, uint gapoffset = 0)
        {
            base.Read(br, raw, headeroffset, gapoffset);

            br.SetEncoding(Codepage);

            RelaxedModeErrors = "";
            bool bRelaxed = true;

            Decode_PolygoneData(br, bRelaxed);
            Decode_PolylineData(br, bRelaxed);
            Decode_POIData(br, bRelaxed);
        }
Exemplo n.º 4
0
        protected override void ReadSections(BinaryReaderWriter br)
        {
            // --------- Dateiabschnitte für die Rohdaten bilden (nur NT) ---------
            Filesections.AddSection((int)InternalFileSections.NT_PointDatablock, new DataBlock(NT_PointDatablock));
            Filesections.AddSection((int)InternalFileSections.NT_PointDatabtable, new DataBlock(NT_PointTableBlock));
            Filesections.AddSection((int)InternalFileSections.NT_PointLabelblock, new DataBlock(NT_PointLabelblock));
            Filesections.AddSection((int)InternalFileSections.NT_LabelblockTable1, new DataBlock(NT_LabelblockTable1));
            Filesections.AddSection((int)InternalFileSections.NT_LabelblockTable2, new DataBlock(NT_LabelblockTable2));
            if (GapOffset > HeaderOffset + Headerlength) // nur möglich, wenn extern z.B. auf den nächsten Header gesetzt
            {
                Filesections.AddSection((int)InternalFileSections.PostHeaderData, HeaderOffset + Headerlength, GapOffset - (HeaderOffset + Headerlength));
            }

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

            SetSpecialOffsetsFromSections((int)InternalFileSections.PostHeaderData);

            br.SetEncoding(Codepage);
        }
Exemplo n.º 5
0
            public void Read(BinaryReaderWriter br)
            {
                Headerlength = br.Read2AsUShort();
                Id1          = br.Read2AsUShort();
                Id2          = br.Read2AsUShort();
                Codepage     = br.Read2AsUShort();
                br.SetEncoding(Codepage);

                br.ReadBytes(Unknown1);
                br.ReadBytes(Unknown2);
                CharTabBlock.Read(br);
                br.ReadBytes(Unknown3);
                ExpansionsBlock.Read(br);
                br.ReadBytes(Unknown4);
                CharTabOffset = br.Read4UInt();
                br.ReadBytes(Unknown5);

                if (Headerlength > 0x34)
                {
                    Unknown6 = new byte[Headerlength - 0x34];
                    br.ReadBytes(Unknown6);
                }
            }