From a6da045ab5ce6d7c33ae223fa6f217e470af0c02 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Mon, 13 Jun 2022 21:02:44 +0300 Subject: Autocommit at 13.06.2022 @ 21:02 --- src/Models/Table.cpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'src/Models/Table.cpp') diff --git a/src/Models/Table.cpp b/src/Models/Table.cpp index 1ba3daa..2db80e2 100644 --- a/src/Models/Table.cpp +++ b/src/Models/Table.cpp @@ -40,7 +40,17 @@ void A(std::ifstream& in, List& buffer) { } void Table::readFromFile(std::ifstream& inFile) { + unsigned row = 0; + cells.add(List()); + while (inFile.peek() != EOF) { + if (inFile.peek() == '\0') { + row++; + inFile.get(); + cells.add(List()); + continue; + } + List buffer; W(inFile); @@ -49,9 +59,9 @@ void Table::readFromFile(std::ifstream& inFile) { A(inFile, buffer); buffer.add('\0'); - cells[0][0] = (buffer[0] == '=') + cells[row].add((buffer[0] == '=') ? (Cell*)new CellFormula(buffer.raw_data(), &cells) - : (Cell*)new CellString(buffer.raw_data()); + : (Cell*)new CellString(buffer.raw_data())); } else { P(inFile, buffer); @@ -59,10 +69,10 @@ void Table::readFromFile(std::ifstream& inFile) { if (inFile.peek() == '.') { inFile.get(); D(inFile, buffer); - cells[0][0] = (Cell*)new CellDouble(buffer.raw_data()); + cells[row].add((Cell*)new CellDouble(buffer.raw_data())); } else - cells[0][0] = (Cell*)new CellInt(buffer.raw_data()); + cells[row].add((Cell*)new CellInt(buffer.raw_data())); } } } -- cgit v1.3.1-23-gd82d