Ejemplo n.º 1
0
            /// <summary>
            /// 在指定位置插入行
            /// </summary>
            /// <param name="index"></param>
            /// <param name="row"></param>
            public void InsertRowAt(int index, MTableRow row)
            {
                if (row.Length != iClm)
                {
                    throw new Exception("row length is not equal to current table.");
                }
                if (index >= iRow)
                {
                    AddRow(row);
                    return;
                }
                else if (index < 0)
                {
                    index = 0;
                }

                Array.Resize <MTableRow>(ref oRows, iRow + 1);
                for (int i = iRow; i > index; i--)
                {
                    oRows[i] = oRows[i - 1];
                }

                oRows[index] = row;
                iRow++;
            }
Ejemplo n.º 2
0
            /// <summary>
            /// 删除指定行
            /// </summary>
            /// <param name="index"></param>
            public void RemoveRowAt(int index)
            {
                if (index < 0 || index >= iRow || iRow < 1)
                {
                    throw new Exception("index is not valid");
                }
                MTableRow[] tRows = new MTableRow[iRow - 1];

                for (int i = 0; i < iRow; i++)
                {
                    if (i < index)
                    {
                        tRows[i] = oRows[i];
                    }
                    else if (i > index)
                    {
                        tRows[i - 1] = oRows[i];
                    }
                }

                iRow -= 1;
                oRows = new MTableRow[iRow];

                for (int i = 0; i < iRow; i++)
                {
                    oRows[i] = tRows[i];
                }
            }
Ejemplo n.º 3
0
            /// <summary>
            /// 构造一张空表
            /// </summary>
            /// <param name="iRowCnt"></param>
            /// <param name="iColumnCnt"></param>
            public MTable(int iRowCnt, int iColumnCnt)
            {
                if (iRowCnt < 1 || iColumnCnt < 1)
                {
                    throw new Exception("Row or column count must more than 0.");
                }
                iRow = iRowCnt;
                iClm = iColumnCnt;

                oRows = new MTableRow[iRowCnt];

                for (int i = 0; i < iRow; i++)
                {
                    oRows[i] = new MTableRow(iClm);
                }
            }
Ejemplo n.º 4
0
            /// <summary>
            /// 从指定字符串构造表
            /// </summary>
            /// <param name="val"></param>
            public void FromString(string val)
            {
                if (val.Trim() == "")
                {
                    iRow  = 0;
                    iClm  = 0;
                    oRows = new MTableRow[0];
                    return;
                }


                string[] arrRow = StringTool.MSplit(val, ";");

                int iTemp = 0;

                for (int i = 0; i < arrRow.Length; i++)
                {
                    if (i == 0)
                    {
                        iTemp = StringTool.MSplit(arrRow[i], ",").Length;
                    }
                    else if (StringTool.MSplit(arrRow[i], ",").Length != iTemp)
                    {
                        throw new Exception("Argument is not valid");
                    }
                }

                iClm = iTemp;
                iRow = arrRow.Length;

                oRows = new MTableRow[iRow];
                for (int i = 0; i < iRow; i++)
                {
                    oRows[i] = new MTableRow(arrRow[i]);
                }
            }
Ejemplo n.º 5
0
 /// <summary>
 /// 在表的末尾添加一行
 /// </summary>
 /// <param name="oRow"></param>
 public void AddRow(MTableRow oRow)
 {
     Array.Resize <MTableRow>(ref oRows, iRow + 1);
     oRows[iRow] = oRow;
     iRow++;
 }
Ejemplo n.º 6
0
 /// <summary>
 /// 在表的末尾添加一行
 /// </summary>
 /// <param name="val"></param>
 public void AddRow(string val)
 {
     Array.Resize <MTableRow>(ref oRows, iRow + 1);
     oRows[iRow] = new MTableRow(val);
     iRow++;
 }
Ejemplo n.º 7
0
 public MTableRow(MTableRow other)
     : base(other)
 {
 }