using System; using System.Collections.Generic; using System.Text; using System.IO; using QiHe.CodeLib; namespace HH.WMS.Utils.ExcelLibrary.BinaryFileFormat { /// /// List of nm Unicode strings, 16-bit string length /// public partial class SST : Record { public SST(Record record) : base(record) { } public SST() { this.Type = RecordType.SST; this.StringList = new FastSearchList(); } /// /// Total number of strings in the workbook /// public Int32 TotalOccurance; /// /// Number of following strings (nm) /// public Int32 NumStrings; /// /// List of nm Unicode strings, 16-bit string length /// public FastSearchList StringList; public void decode() { MemoryStream stream = new MemoryStream(Data); BinaryReader reader = new BinaryReader(stream); this.TotalOccurance = reader.ReadInt32(); this.NumStrings = reader.ReadInt32(); int count = this.NumStrings; this.StringList = new FastSearchList(count); for (int i = 0; i < count; i++) { StringList.Add(this.ReadString(reader, 16)); } } public void encode() { MemoryStream stream = new MemoryStream(); BinaryWriter writer = new BinaryWriter(stream); writer.Write(TotalOccurance); writer.Write(NumStrings); foreach(String stringVar in StringList) { writer.Write(stringVar); } this.Data = stream.ToArray(); this.Size = (UInt16)Data.Length; base.Encode(); } } }