示例#1
0
 protected bool Parse <T>(string Field, ref Seq2ListRef <T> b, CVSReader.ValueParse <T> parse, string post)
 {
     if (Field.Length == 0)
     {
         b.indexOffset = 0;
         return(true);
     }
     string[] array = Field.Split(new char[]
     {
         '|'
     });
     if (array.Length == 0)
     {
         b.indexOffset = 0;
         return(true);
     }
     lock (CVSReader._seqIndex)
     {
         b.count       = (byte)array.Length;
         b.indexOffset = this.AddIndexBuffer(array.Length);
         for (int i = 0; i < array.Length; i++)
         {
             string field = array[i];
             int    num   = 0;
             this.Parse <T>(field, ref num, parse, post, 2);
             CVSReader.indexBuffer[b.indexOffset + i] = num;
         }
     }
     return(true);
 }
示例#2
0
 protected bool ReadSeqList <T>(BinaryReader stream, ref Seq2ListRef <T> v, CVSReader.ValueParse <T> parse)
 {
     v.count = stream.ReadByte();
     if (v.count > 0)
     {
         lock (CVSReader._seqIndex)
         {
             v.indexOffset = this.AddIndexBuffer(v.count);
             for (byte b = 0; b < v.count; b += 1)
             {
                 int num  = v.indexOffset + (int)b;
                 int num2 = 0;
                 this.Parse <T>(stream, parse, 2, ref num, ref num2);
                 CVSReader.indexBuffer[v.indexOffset + (int)b] = num2;
             }
             return(true);
         }
     }
     v.indexOffset = 0;
     return(true);
 }