Ejemplo n.º 1
0
        /// <summary>
        /// 直接插入行数据
        /// </summary>
        /// <param name="pk">主键</param>
        /// <param name="ary">数组</param>
        /// <param name="size">长度</param>
        public virtual void AddRow(double pk, double[] ary, int size)
        {
            m_keys.push_back(pk);
            FCDataRow row = new FCDataRow(ary, size);

            m_rows.push_back(row);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// 移除指定索引的数据
 /// </summary>
 /// <param name="rowIndex">行索引</param>
 public virtual void removeAt(int rowIndex)
 {
     try {
         m_keys.remove_at(rowIndex);
         FCDataRow row = m_rows.get(rowIndex);
         row.clear();
         m_rows.remove_at(rowIndex);
     }
     catch { }
 }
Ejemplo n.º 3
0
 /// <summary>
 /// 移除数据
 /// </summary>
 /// <param name="pk">主键</param>
 public virtual void remove(double pk)
 {
     try {
         int index = getRowIndex(pk);
         m_keys.remove_at(index);
         FCDataRow row = m_rows.get(index);
         row.clear();
         m_rows.remove_at(index);
     }
     catch { }
 }
Ejemplo n.º 4
0
 /// <summary>
 /// 添加数值主键
 /// </summary>
 /// <param name="num">数值</param>
 /// <param name="newRow">数据行</param>
 private FCDataRow addKey(double num)
 {
     if (m_keys.size() == 0 || num > m_keys.get(m_keys.size() - 1))
     {
         m_keys.push_back(num);
         FCDataRow newRow = new FCDataRow(m_colsCapacity, m_colsStep);
         m_rows.push_back(newRow);
         return(newRow);
     }
     else
     {
         int begin = 0;
         int end   = m_keys.size() - 1;
         int sub   = end - begin;
         while (sub > 1)
         {
             int    half = begin + sub / 2;
             double hf   = m_keys.get(half);
             if (hf > num)
             {
                 end = half;
             }
             else if (hf < num)
             {
                 begin = half;
             }
             sub = end - begin;
         }
         if (num < m_keys.get(begin))
         {
             m_keys.insert(begin, num);
             FCDataRow newRow = new FCDataRow(m_colsCapacity, m_colsStep);
             m_rows.insert(begin, newRow);
             return(newRow);
         }
         else if (num > m_keys.get(end))
         {
             m_keys.insert(end + 1, num);
             FCDataRow newRow = new FCDataRow(m_colsCapacity, m_colsStep);
             m_rows.insert(end + 1, newRow);
             return(newRow);
         }
         else
         {
             m_keys.insert(begin + 1, num);
             FCDataRow newRow = new FCDataRow(m_colsCapacity, m_colsStep);
             m_rows.insert(begin + 1, newRow);
             return(newRow);
         }
     }
 }
Ejemplo n.º 5
0
        /// <summary>
        /// 添加数据,主键为日期
        /// </summary>
        /// <param name="pk">主键</param>
        /// <param name="colName">列名称</param>
        /// <param name="value">值</param>
        public virtual void set(double pk, int colName, double value)
        {
            FCDataRow row   = null;
            int       index = getRowIndex(pk);

            if (index == -1)
            {
                row = addKey(pk);
                row.fillEmpty(m_columns.size());
            }
            else
            {
                row = m_rows.get(index);
            }
            int colIndex = getColumnIndex(colName);

            row.set(colIndex, value);
        }
Ejemplo n.º 6
0
 /// <summary>
 /// 清除数据
 /// </summary>
 public virtual void clear()
 {
     if (m_keys != null)
     {
         m_keys.clear();
     }
     if (m_rows != null)
     {
         for (int i = 0; i < m_rows.size(); i++)
         {
             FCDataRow row = m_rows.get(i);
             if (row != null)
             {
                 row.delete();
             }
         }
         m_rows.clear();
     }
 }