diff options
Autocommit at 28.05.2022 @ 19:19
2 files changed, 10 insertions, 3 deletions
| -rw-r--r-- | src/Models/CellFormula.cpp | 9 | ||||
| -rw-r--r-- | src/Models/CellFormula.h | 4 |
diff --git a/src/Models/CellFormula.cpp b/src/Models/CellFormula.cpp index 3029a19..395e31c 100644 --- a/src/Models/CellFormula.cpp +++ b/src/Models/CellFormula.cpp @@ -2,7 +2,8 @@ #include "CellDouble.h" #include <cstring> -CellFormula::CellFormula(const char* str) : referencedCells(), formula(), rawFormula() { +CellFormula::CellFormula(const char* str, const List<List<Cell*>>* tableCells) : referencedCells(), formula(), rawFormula() { + this->tableCells = tableCells; parseAndSetValue(str); } @@ -35,9 +36,13 @@ String CellFormula::getValueForPrint() { } void CellFormula::parseAndSetValue(const char* str) { + rawFormula = String(str); + str++; while (*str == ' ') str++; - double number = atof(str); + if (*str == 'R') { + unsigned row = atoi(++str); + } } void CellFormula::readFromFile(std::ifstream& file) { diff --git a/src/Models/CellFormula.h b/src/Models/CellFormula.h index eebe120..28134ab 100644 --- a/src/Models/CellFormula.h +++ b/src/Models/CellFormula.h @@ -16,6 +16,8 @@ class CellFormula : public Cell { pow = 0b100000, }; + const List<List<Cell*>>* tableCells; + List<Cell*> referencedCells; List<Pair<Cell*, Op>> formula; String rawFormula; @@ -24,7 +26,7 @@ class CellFormula : public Cell { public: CellFormula() = default; - CellFormula(const char* str); + CellFormula(const char* str, const List<List<Cell*>>* tableCells); double getNumeralValue() override; String getValueForPrint() override; |
