protected override void DecodeSections() { RawRead = true; // besser geht es noch nicht if (Locked != 0) { RawRead = true; return; } // Datenblöcke "interpretieren" int filesectiontype; filesectiontype = (int)InternalFileSections.Mdr1; if (Filesections.GetLength(filesectiontype) > 0) { DataBlockWithRecordsize bl = new DataBlockWithRecordsize(Filesections.GetPosition(filesectiontype)); bl.Offset = 0; //Decode_Mdr1(Filesections.GetSectionDataReader(filesectiontype), bl); //Filesections.RemoveSection(filesectiontype); } // usw. filesectiontype = (int)InternalFileSections.Mdr10; if (Filesections.GetLength(filesectiontype) > 0) { //Decode_Mdr10(Filesections.GetSectionDataReader(filesectiontype), new DataBlock(0, Filesections.GetLength(filesectiontype))); //Filesections.RemoveSection(filesectiontype); } // usw. }
void Encode_ContentsBlock(BinaryReaderWriter bw) { if (bw != null) { (Filesections.GetPosition((int)InternalFileSections.DescriptionBlock) as DataBlock).Write(bw); (Filesections.GetPosition((int)InternalFileSections.CharacterLookupTableBlock) as DataBlock).Write(bw); } }
public override void SetSectionsAlign() { // durch Pseudo-Offsets die Reihenfolge der Abschnitte festlegen uint pos = 0; Filesections.SetOffset((int)InternalFileSections.PostHeaderData, pos++); Filesections.SetOffset((int)InternalFileSections.Mdr1, pos++); Filesections.SetOffset((int)InternalFileSections.Mdr2, pos++); Filesections.SetOffset((int)InternalFileSections.Mdr3, pos++); Filesections.SetOffset((int)InternalFileSections.Mdr4, pos++); Filesections.SetOffset((int)InternalFileSections.Mdr5, pos++); Filesections.SetOffset((int)InternalFileSections.Mdr6, pos++); Filesections.SetOffset((int)InternalFileSections.Mdr7, pos++); Filesections.SetOffset((int)InternalFileSections.Mdr8, pos++); Filesections.SetOffset((int)InternalFileSections.Mdr9, pos++); Filesections.SetOffset((int)InternalFileSections.Mdr10, pos++); Filesections.SetOffset((int)InternalFileSections.Mdr11, pos++); Filesections.SetOffset((int)InternalFileSections.Mdr12, pos++); Filesections.SetOffset((int)InternalFileSections.Mdr13, pos++); Filesections.SetOffset((int)InternalFileSections.Mdr14, pos++); Filesections.SetOffset((int)InternalFileSections.Mdr15, pos++); Filesections.SetOffset((int)InternalFileSections.Mdr16, pos++); Filesections.SetOffset((int)InternalFileSections.Mdr17, pos++); Filesections.SetOffset((int)InternalFileSections.Mdr18, pos++); Filesections.AdjustSections(DataOffset); // lückenlos ausrichten Mdr1 = new DataBlockWithRecordsize(Filesections.GetPosition((int)InternalFileSections.Mdr1)); Mdr2 = new DataBlockWithRecordsize(Filesections.GetPosition((int)InternalFileSections.Mdr2)); Mdr3 = new DataBlockWithRecordsize(Filesections.GetPosition((int)InternalFileSections.Mdr3)); Mdr4 = new DataBlockWithRecordsize(Filesections.GetPosition((int)InternalFileSections.Mdr4)); Mdr5 = new DataBlockWithRecordsize(Filesections.GetPosition((int)InternalFileSections.Mdr5)); Mdr6 = new DataBlockWithRecordsize(Filesections.GetPosition((int)InternalFileSections.Mdr6)); Mdr7 = new DataBlockWithRecordsize(Filesections.GetPosition((int)InternalFileSections.Mdr7)); Mdr8 = new DataBlockWithRecordsize(Filesections.GetPosition((int)InternalFileSections.Mdr8)); Mdr9 = new DataBlockWithRecordsize(Filesections.GetPosition((int)InternalFileSections.Mdr9)); Mdr10 = new DataBlock(Filesections.GetPosition((int)InternalFileSections.Mdr10)); Mdr11 = new DataBlockWithRecordsize(Filesections.GetPosition((int)InternalFileSections.Mdr11)); Mdr12 = new DataBlockWithRecordsize(Filesections.GetPosition((int)InternalFileSections.Mdr12)); Mdr13 = new DataBlockWithRecordsize(Filesections.GetPosition((int)InternalFileSections.Mdr13)); Mdr14 = new DataBlockWithRecordsize(Filesections.GetPosition((int)InternalFileSections.Mdr14)); Mdr15 = new DataBlock(Filesections.GetPosition((int)InternalFileSections.Mdr15)); Mdr16 = new DataBlockWithRecordsize(Filesections.GetPosition((int)InternalFileSections.Mdr16)); Mdr17 = new DataBlock(Filesections.GetPosition((int)InternalFileSections.Mdr17)); Mdr18 = new DataBlockWithRecordsize(Filesections.GetPosition((int)InternalFileSections.Mdr18)); }
public override void SetSectionsAlign() { // durch Pseudo-Offsets die Reihenfolge der Abschnitte festlegen uint pos = 0; Filesections.SetOffset((int)InternalFileSections.ContentsBlock, pos++); Filesections.SetOffset((int)InternalFileSections.DescriptionBlock, pos++); Filesections.SetOffset((int)InternalFileSections.CharacterLookupTableBlock, pos++); Filesections.AdjustSections(DataOffset); // lückenlos ausrichten // mit den endgültigen Offsets setzen SetData2Filesection((int)InternalFileSections.ContentsBlock, true); DataBlockWithRecordsize tmp = Filesections.GetPosition((int)InternalFileSections.ContentsBlock); ContentsBlock = new ShortDataBlock(tmp.Offset, (ushort)tmp.Length); }
public override void SetSectionsAlign() { // durch Pseudo-Offsets die Reihenfolge der Abschnitte festlegen uint pos = 0; Filesections.SetOffset((int)InternalFileSections.NT_PointDatablock, pos++); Filesections.SetOffset((int)InternalFileSections.NT_PointDatabtable, pos++); Filesections.SetOffset((int)InternalFileSections.NT_PointLabelblock, pos++); Filesections.SetOffset((int)InternalFileSections.NT_LabelblockTable1, pos++); Filesections.SetOffset((int)InternalFileSections.NT_LabelblockTable2, pos++); Filesections.AdjustSections(DataOffset); // lückenlos ausrichten NT_PointTableBlock = new TypDataBlockWithRecordsize(Filesections.GetPosition((int)InternalFileSections.NT_PointDatabtable)); NT_PointDatablock = new DataBlock(Filesections.GetPosition((int)InternalFileSections.NT_PointDatablock)); NT_PointLabelblock = new DataBlock(Filesections.GetPosition((int)InternalFileSections.NT_PointLabelblock)); NT_LabelblockTable1 = new DataBlock(Filesections.GetPosition((int)InternalFileSections.NT_LabelblockTable1)); NT_LabelblockTable2 = new DataBlock(Filesections.GetPosition((int)InternalFileSections.NT_LabelblockTable2)); }
public override void SetSectionsAlign() { // durch Pseudo-Offsets die Reihenfolge der Abschnitte festlegen uint pos = 0; Filesections.SetOffset((int)InternalFileSections.PostHeaderData, pos++); Filesections.SetOffset((int)InternalFileSections.Nod1, pos++); Filesections.SetOffset((int)InternalFileSections.Nod2, pos++); Filesections.SetOffset((int)InternalFileSections.Nod3, pos++); Filesections.SetOffset((int)InternalFileSections.Nod4, pos++); Filesections.SetOffset((int)InternalFileSections.Nod5, pos++); Filesections.SetOffset((int)InternalFileSections.Nod6, pos++); Filesections.AdjustSections(DataOffset); // lückenlos ausrichten Nod1Nodes = new DataBlock(Filesections.GetPosition((int)InternalFileSections.Nod1)); Nod2RoadData = new DataBlock(Filesections.GetPosition((int)InternalFileSections.Nod2)); Nod3BoundaryNodes = new DataBlockWithRecordsize(Filesections.GetPosition((int)InternalFileSections.Nod3)); Nod4HighClassBoundary = new DataBlock(Filesections.GetPosition((int)InternalFileSections.Nod4)); Nod5 = new DataBlock(Filesections.GetPosition((int)InternalFileSections.Nod5)); Nod6 = new DataBlockWithRecordsize(Filesections.GetPosition((int)InternalFileSections.Nod6)); }