#pragma once #include #include #include #include #include #include #include #include #include #include namespace iflytop { using namespace std; class ZCSVCell { public: int rowNum; int colNum; string data; }; class ZCSV { private: list csvData; int m_maxRowNum = -1; int m_maxColNum = -1; public: ZCSV(); bool parseCSV(string filename); void setdata(int rowNum, int colNum, string data); string getdata(int rowNum, int colNum); int maxRowNum() { return m_maxRowNum; } int maxColNum() { return m_maxColNum; } bool isColExist(string key); int findCol(string key); string getData(string key, int rowNum); void setData(string rowName, string colName, string data); vector getRowKeys(); void dumpCSV(string filename); private: ZCSVCell* findCell(int rowNum, int colNum); int forceFindRow(string name); int forceFindCol(string name); }; } // namespace iflytop