using System; using System.Collections.Generic; using System.Text; using System.IO; namespace HH.WMS.Utils.ExcelLibrary.BinaryFileFormat { /// /// contains relative offsets to calculate the stream position of the first cell /// record for each row in each row block. /// public partial class DBCELL : Record { public DBCELL(Record record) : base(record) { } public DBCELL() { this.Type = RecordType.DBCELL; this.FirstCellOffsets = new List(); } /// /// Relative offset to first ROW record in the Row Block /// public UInt32 FirstRowOffset; /// /// relative offsets to calculate stream position of the first cell record for the respective row /// public List FirstCellOffsets; public override void Decode() { MemoryStream stream = new MemoryStream(Data); BinaryReader reader = new BinaryReader(stream); this.FirstRowOffset = reader.ReadUInt32(); int count = (this.Size - 4) / 2; this.FirstCellOffsets = new List(count); for (int i = 0; i < count; i++) { FirstCellOffsets.Add(reader.ReadUInt16()); } } public override void Encode() { MemoryStream stream = new MemoryStream(); BinaryWriter writer = new BinaryWriter(stream); writer.Write(FirstRowOffset); foreach(UInt16 uint16Var in FirstCellOffsets) { writer.Write(uint16Var); } this.Data = stream.ToArray(); this.Size = (UInt16)Data.Length; base.Encode(); } } }