예제 #1
0
 public bool MoveNext()
 {
     if (_curRowRecordsEnumarator == null)
     {
         var res = _blocks.MoveNext();
         if (!res)
         {
             return(res);
         }
         _curRowRecordsEnumarator = _blocks.Current.GetRowRecrodsEnumerator(_tManager.RowRecordSize);
     }
     if (_curRowRecordsEnumarator.MoveNext())
     {
         Current = _curRowRecordsEnumarator.Current.Fields;
         Current.FilePtrBlock = _curRowRecordsEnumarator.Current.FilePtrBlock;
         Current.InBlockPos   = _curRowRecordsEnumarator.Current.InBlockPos;
         return(true);
     }
     else
     {
         if (_blocks.MoveNext())
         {
             _curRowRecordsEnumarator = _blocks.Current.GetRowRecrodsEnumerator(_tManager.RowRecordSize);
             _curRowRecordsEnumarator.MoveNext();
             Current = _curRowRecordsEnumarator.Current.Fields;
             Current.FilePtrBlock = _curRowRecordsEnumarator.Current.FilePtrBlock;
             Current.InBlockPos   = _curRowRecordsEnumarator.Current.InBlockPos;
             return(true);
         }
         else
         {
             return(false);
         }
     }
 }
예제 #2
0
 public void Reset()
 {
     _blocks = _tManager.GetBlockEnumarator();
     _curRowRecordsEnumarator = null;
     Current = null;
 }