You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.7 KiB
C#
63 lines
1.7 KiB
C#
namespace com.azkoss.excellite
|
|
{
|
|
using System;
|
|
using System.IO;
|
|
|
|
internal class ExtSSTRecord : XLSRecord
|
|
{
|
|
// Methods
|
|
static ExtSSTRecord()
|
|
{
|
|
ExtSSTRecord.staticDescriptor = XLSDescriptors.GetByName("ExtSST");
|
|
}
|
|
|
|
public ExtSSTRecord(int stringsInBucket, int offset, AbsXLSRec sstRecord) : base(ExtSSTRecord.staticDescriptor)
|
|
{
|
|
base.InitializeBody((byte[]) null);
|
|
this.stringsInBucket = stringsInBucket;
|
|
this.offset = offset;
|
|
this.sstRecord = sstRecord;
|
|
}
|
|
|
|
public ExtSSTRecord(int bodyLength, BinaryReader br, AbsXLSRec previousRecord) : base(ExtSSTRecord.staticDescriptor, bodyLength, br)
|
|
{
|
|
}
|
|
|
|
protected override int GetVariableArraySize(object[] loadedArgs, object[] varArr, int bodySize)
|
|
{
|
|
return ((bodySize - 2) / 8);
|
|
}
|
|
|
|
protected override void InitializeDelayed()
|
|
{
|
|
object[] objArray1 = new object[2];
|
|
objArray1[0] = (ushort) this.stringsInBucket;
|
|
object[] objArray2 = new object[] { (uint) (this.sstRecord.Address + this.offset), (ushort) this.offset } ;
|
|
objArray1[1] = objArray2;
|
|
base.InitializeDelayed(objArray1);
|
|
}
|
|
|
|
|
|
// Properties
|
|
protected override int BodySize
|
|
{
|
|
get
|
|
{
|
|
if (this.Body != null)
|
|
{
|
|
return this.Body.Length;
|
|
}
|
|
return 10;
|
|
}
|
|
}
|
|
|
|
|
|
// Fields
|
|
private int offset;
|
|
private AbsXLSRec sstRecord;
|
|
private static XLSDescriptor staticDescriptor;
|
|
private int stringsInBucket;
|
|
}
|
|
}
|
|
|