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); }
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); } }
/// <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); }
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); }
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); } }