本文整理汇总了C#中ILittleEndianInput.ReadUShort方法的典型用法代码示例。如果您正苦于以下问题:C# ILittleEndianInput.ReadUShort方法的具体用法?C# ILittleEndianInput.ReadUShort怎么用?C# ILittleEndianInput.ReadUShort使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ILittleEndianInput
的用法示例。
在下文中一共展示了ILittleEndianInput.ReadUShort方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreateSubRecord
public static SubRecord CreateSubRecord(ILittleEndianInput in1, CommonObjectType cmoOt)
{
int sid = in1.ReadUShort();
int secondUShort = in1.ReadUShort(); // Often (but not always) the datasize for the sub-record
switch (sid)
{
case CommonObjectDataSubRecord.sid:
return new CommonObjectDataSubRecord(in1, secondUShort);
case EmbeddedObjectRefSubRecord.sid:
return new EmbeddedObjectRefSubRecord(in1, secondUShort);
case GroupMarkerSubRecord.sid:
return new GroupMarkerSubRecord(in1, secondUShort);
case EndSubRecord.sid:
return new EndSubRecord(in1, secondUShort);
case NoteStructureSubRecord.sid:
return new NoteStructureSubRecord(in1, secondUShort);
case LbsDataSubRecord.sid:
return new LbsDataSubRecord(in1, secondUShort, (int)cmoOt);
case FtCblsSubRecord.sid:
return new FtCblsSubRecord(in1, secondUShort);
}
return new UnknownSubRecord(in1, sid, secondUShort);
}
示例2: ReadAConstantValue
private static object ReadAConstantValue(ILittleEndianInput in1)
{
byte grbit = (byte)in1.ReadByte();
switch (grbit)
{
case TYPE_EMPTY:
in1.ReadLong(); // 8 byte 'not used' field
return EMPTY_REPRESENTATION;
case TYPE_NUMBER:
return in1.ReadDouble();
case TYPE_STRING:
return StringUtil.ReadUnicodeString(in1);
case TYPE_BOOLEAN:
return ReadBoolean(in1);
case TYPE_ERROR_CODE:
int errCode = in1.ReadUShort();
// next 6 bytes are Unused
in1.ReadUShort();
in1.ReadInt();
return ErrorConstant.ValueOf(errCode);
}
throw new Exception("Unknown grbit value (" + grbit + ")");
}
示例3: TblPtg
public TblPtg(ILittleEndianInput in1)
{
field_1_first_row = in1.ReadUShort();
field_2_first_col = in1.ReadUShort();
}
示例4: ReadCoordinates
protected void ReadCoordinates(ILittleEndianInput in1)
{
field_1_first_row = in1.ReadUShort();
field_2_last_row = in1.ReadUShort();
field_3_first_column = in1.ReadUShort();
field_4_last_column = in1.ReadUShort();
}
示例5: EmbeddedObjectRefSubRecord
/**
* Constructs an EmbeddedObjectRef record and Sets its fields appropriately.
*
* @param in the record input stream.
*/
public EmbeddedObjectRefSubRecord(ILittleEndianInput in1, int size)
{
// Much guess-work going on here due to lack of any documentation.
// See similar source code in OOO:
// http://lxr.go-oo.org/source/sc/sc/source/filter/excel/xiescher.cxx
// 1223 void XclImpOleObj::ReadPictFmla( XclImpStream& rStrm, sal_uInt16 nRecSize )
int streamIdOffset = in1.ReadShort(); // OOO calls this 'nFmlaLen'
int remaining = size - LittleEndianConsts.SHORT_SIZE;
int dataLenAfterFormula = remaining - streamIdOffset;
int formulaSize = in1.ReadUShort();
remaining -= LittleEndianConsts.SHORT_SIZE;
field_1_unknown_int = in1.ReadInt();
remaining -= LittleEndianConsts.INT_SIZE;
byte[] formulaRawBytes = ReadRawData(in1, formulaSize);
remaining -= formulaSize;
field_2_refPtg = ReadRefPtg(formulaRawBytes);
if (field_2_refPtg == null)
{
// common case
// field_2_n16 seems to be 5 here
// The formula almost looks like tTbl but the row/column values seem like garbage.
field_2_unknownFormulaData = formulaRawBytes;
}
else
{
field_2_unknownFormulaData = null;
}
int stringByteCount;
if (remaining >= dataLenAfterFormula + 3)
{
int tag = in1.ReadByte();
stringByteCount = LittleEndianConsts.BYTE_SIZE;
if (tag != 0x03)
{
throw new RecordFormatException("Expected byte 0x03 here");
}
int nChars = in1.ReadUShort();
stringByteCount += LittleEndianConsts.SHORT_SIZE;
if (nChars > 0)
{
// OOO: the 4th way Xcl stores a unicode string: not even a Grbit byte present if Length 0
field_3_unicode_flag = (in1.ReadByte() & 0x01) != 0;
stringByteCount += LittleEndianConsts.BYTE_SIZE;
if (field_3_unicode_flag)
{
field_4_ole_classname = StringUtil.ReadUnicodeLE(in1,nChars);
stringByteCount += nChars * 2;
}
else
{
field_4_ole_classname = StringUtil.ReadCompressedUnicode(in1,nChars);
stringByteCount += nChars;
}
}
else
{
field_4_ole_classname = "";
}
}
else
{
field_4_ole_classname = null;
stringByteCount = 0;
}
remaining -= stringByteCount;
// Pad to next 2-byte boundary
if (((stringByteCount + formulaSize) % 2) != 0)
{
int b = in1.ReadByte();
remaining -= LittleEndianConsts.BYTE_SIZE;
if (field_2_refPtg != null && field_4_ole_classname == null)
{
field_4_unknownByte = (byte)b;
}
}
int nUnexpectedPadding = remaining - dataLenAfterFormula;
if (nUnexpectedPadding > 0)
{
logger.Log(POILogger.ERROR, "Discarding " + nUnexpectedPadding + " unexpected padding bytes ");
ReadRawData(in1, nUnexpectedPadding);
remaining -= nUnexpectedPadding;
}
// Fetch the stream ID
if (dataLenAfterFormula >= 4)
{
field_5_stream_id = in1.ReadInt();
remaining -= LittleEndianConsts.INT_SIZE;
}
//.........这里部分代码省略.........
示例6: Initial
public Initial(ILittleEndianInput in1)
{
_reserved0 = in1.ReadInt();
_reserved1 = in1.ReadUShort();
_reserved2 = in1.ReadUByte();
}
示例7: ReadUnicodeLE
public static String ReadUnicodeLE(ILittleEndianInput in1, int nChars)
{
char[] buf = new char[nChars];
for (int i = 0; i < buf.Length; i++)
{
buf[i] = (char)in1.ReadUShort();
}
return new String(buf);
}
示例8: GUID
public GUID(ILittleEndianInput in1)
:this(in1.ReadInt(), in1.ReadUShort(), in1.ReadUShort(), in1.ReadLong())
{
}
示例9: AttrPtg
public AttrPtg(ILittleEndianInput in1)
{
field_1_options =(byte)in1.ReadByte();
field_2_data = in1.ReadShort();
if (IsOptimizedChoose)
{
int nCases = field_2_data;
int[] jumpTable = new int[nCases];
for (int i = 0; i < jumpTable.Length; i++)
{
jumpTable[i] = in1.ReadUShort();
}
_jumpTable = jumpTable;
_chooseFuncOffset = in1.ReadUShort();
}
else
{
_jumpTable = null;
_chooseFuncOffset = -1;
}
}
示例10: LbsDataSubRecord
/**
* @param in the stream to read data from
* @param cbFContinued the seconf short in the record header
* @param cmoOt the Containing Obj's {@link CommonObjectDataSubRecord#field_1_objectType}
*/
public LbsDataSubRecord(ILittleEndianInput in1, int cbFContinued, int cmoOt)
{
_cbFContinued = cbFContinued;
int encodedTokenLen = in1.ReadUShort();
if (encodedTokenLen > 0)
{
int formulaSize = in1.ReadUShort();
_unknownPreFormulaInt = in1.ReadInt();
Ptg[] ptgs = Ptg.ReadTokens(formulaSize, in1);
if (ptgs.Length != 1)
{
throw new RecordFormatException("Read " + ptgs.Length
+ " tokens but expected exactly 1");
}
_linkPtg = ptgs[0];
switch (encodedTokenLen - formulaSize - 6)
{
case 1:
_unknownPostFormulaByte = (byte)in1.ReadByte();
break;
case 0:
_unknownPostFormulaByte = null;
break;
default:
throw new RecordFormatException("Unexpected leftover bytes");
}
}
_cLines = in1.ReadUShort();
_iSel = in1.ReadUShort();
_flags = in1.ReadUShort();
_idEdit = in1.ReadUShort();
// From [MS-XLS].pdf 2.5.147 FtLbsData:
// This field MUST exist if and only if the Containing Obj?s cmo.ot is equal to 0x14.
if (cmoOt == 0x14)
{
_dropData = new LbsDropData(in1);
}
// From [MS-XLS].pdf 2.5.147 FtLbsData:
// This array MUST exist if and only if the fValidPlex flag (0x2) is set
if ((_flags & 0x2) != 0)
{
_rgLines = new String[_cLines];
for (int i = 0; i < _cLines; i++)
{
_rgLines[i] = StringUtil.ReadUnicodeString(in1);
}
}
// bits 5-6 in the _flags specify the type
// of selection behavior this list control is expected to support
// From [MS-XLS].pdf 2.5.147 FtLbsData:
// This array MUST exist if and only if the wListType field is not equal to 0.
if (((_flags >> 4) & 0x2) != 0)
{
_bsels = new bool[_cLines];
for (int i = 0; i < _cLines; i++)
{
_bsels[i] = in1.ReadByte() == 1;
}
}
}
示例11: LbsDropData
public LbsDropData(ILittleEndianInput in1){
_wStyle = in1.ReadUShort();
_cLine = in1.ReadUShort();
_dxMin = in1.ReadUShort();
_str = StringUtil.ReadUnicodeString(in1);
if(StringUtil.GetEncodedSize(_str) % 2 != 0){
_unused = (byte)in1.ReadByte();
}
}
示例12: ReadCoordinates
protected void ReadCoordinates(ILittleEndianInput in1)
{
field_1_row = in1.ReadUShort();
field_2_col = in1.ReadUShort();
}
示例13: RefPtgBase
protected RefPtgBase(ILittleEndianInput in1)
{
field_1_row = in1.ReadUShort();
field_2_col = in1.ReadUShort();
}
示例14: IntPtg
public IntPtg(ILittleEndianInput in1)
: this(in1.ReadUShort())
{
}
示例15: ReadUnicodeString
/**
* InputStream <c>in</c> is expected to contain:
* <ol>
* <li>ushort nChars</li>
* <li>byte is16BitFlag</li>
* <li>byte[]/char[] characterData</li>
* </ol>
* For this encoding, the is16BitFlag is always present even if nChars==0.
*/
public static String ReadUnicodeString(ILittleEndianInput in1)
{
int nChars = in1.ReadUShort();
byte flag = (byte)in1.ReadByte();
if ((flag & 0x01) == 0)
{
return ReadCompressedUnicode(in1, nChars);
}
return ReadUnicodeLE(in1, nChars);
}