using System; using System.Collections.Generic; using System.Text; using System.IO; namespace HH.WMS.Utils.ExcelLibrary.BinaryFileFormat { /// /// This record occurs in conjunction with the SST record. /// Used to optimise string search operations. /// public partial class EXTSST : Record { public override void Decode() { MemoryStream stream = new MemoryStream(AllData); BinaryReader reader = new BinaryReader(stream); this.NumStrings = reader.ReadUInt16(); this.Offsets = new List(); while (stream.Position < stream.Length) { this.Offsets.Add(ReadStringOffset(reader)); } } public override void Encode() { MemoryStream stream = new MemoryStream(); BinaryWriter writer = new BinaryWriter(stream); writer.Write(NumStrings); foreach (StringOffset stringoffsetVar in Offsets) { WriteStringOffset(writer, stringoffsetVar); } this.Data = stream.ToArray(); this.Size = (UInt16)Data.Length; base.Encode(); } static StringOffset ReadStringOffset(BinaryReader reader) { StringOffset stringOffset = new StringOffset(); stringOffset.AbsolutePosition = reader.ReadUInt32(); stringOffset.RelativePosition = reader.ReadUInt16(); stringOffset.NotUsed = reader.ReadUInt16(); return stringOffset; } static void WriteStringOffset(BinaryWriter writer, StringOffset stringoffset) { writer.Write(stringoffset.AbsolutePosition); writer.Write(stringoffset.RelativePosition); writer.Write(stringoffset.NotUsed); } } }