using System;
|
using System.Collections.Generic;
|
using System.Text;
|
using System.IO;
|
using QiHe.CodeLib;
|
|
namespace HH.WMS.Utils.ExcelLibrary.BinaryFileFormat
|
{
|
/// <summary>
|
/// List of nm Unicode strings, 16-bit string length
|
/// </summary>
|
public partial class SST : Record
|
{
|
public SST(Record record) : base(record) { }
|
|
public SST()
|
{
|
this.Type = RecordType.SST;
|
this.StringList = new FastSearchList<String>();
|
}
|
|
/// <summary>
|
/// Total number of strings in the workbook
|
/// </summary>
|
public Int32 TotalOccurance;
|
|
/// <summary>
|
/// Number of following strings (nm)
|
/// </summary>
|
public Int32 NumStrings;
|
|
/// <summary>
|
/// List of nm Unicode strings, 16-bit string length
|
/// </summary>
|
public FastSearchList<String> 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<String>(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();
|
}
|
|
}
|
}
|