Example #1
0
        public void Open(int r, int c, System.IO.StreamReader sr, System.Windows.Forms.DataGridView dataGridView)
        {
            for (int i = 0; i < r; i++)
            {
                for (int j = 0; j < c; j++)
                {
                    string index      = sr.ReadLine();
                    string expression = sr.ReadLine();
                    string value      = sr.ReadLine();

                    if (expression != "")
                    {
                        dictionary[index] = value;
                    }
                    else
                    {
                        dictionary[index] = "";
                    }

                    int         refCount = Convert.ToInt32(sr.ReadLine());
                    List <Cell> newRef   = new List <Cell>();
                    string      refer;

                    for (int k = 0; k < refCount; k++)
                    {
                        refer = sr.ReadLine();
                        if (TheNumberOfCell.FromIndexSystem(refer).row < RowCount && TheNumberOfCell.FromIndexSystem(refer).column < ColCount)
                        {
                            newRef.Add(border[TheNumberOfCell.FromIndexSystem(refer).row][TheNumberOfCell.FromIndexSystem(refer).column]);
                        }
                    }

                    int         pointCount = Convert.ToInt32(sr.ReadLine());
                    List <Cell> newPoint   = new List <Cell>();
                    string      point;

                    for (int k = 0; k < pointCount; k++)
                    {
                        point = sr.ReadLine();
                        newPoint.Add(border[TheNumberOfCell.FromIndexSystem(point).row][TheNumberOfCell.FromIndexSystem(point).column]);
                    }
                    border[i][j].SetCell(expression, value, newRef, newPoint);

                    int curCol = border[i][j].column;
                    int curRow = border[i][j].row;
                    dataGridView[curCol, curRow].Value = dictionary[index];
                }
            }
        }
Example #2
0
        public string ConvertReferences(int row, int column, string expression)
        {
            string   cellPattern = @"[A-Z]+[0-9]+";
            Regex    regex       = new Regex(cellPattern, RegexOptions.IgnoreCase);
            TheIndex nums;

            foreach (Match match in regex.Matches(expression))
            {
                if (dictionary.ContainsKey(match.Value))
                {
                    nums = TheNumberOfCell.FromIndexSystem(match.Value);
                    border[row][column].NewReferences.Add(border[nums.row][nums.column]);
                }
            }

            MatchEvaluator evaluator      = new MatchEvaluator(referencesToValue);
            string         new_expression = regex.Replace(expression, evaluator);

            return(new_expression);
        }