// OPJFile.h
#ifndef OPJFILE_H
#define OPJFILE_H
// if it crashes : reduce numbers here
#define MAX_SPREADS 32
#define MAX_COLUMNS 64
#define MAX_ROWS 1024
class OPJFile
{
public:
OPJFile(char* filename);
int Parse();
double Version() { return version/100.0; } //!< get version of project file
int numSpreads() { return nr_spreads; } //!< get number of spreadsheets
char *spreadName(int s) { return spreadname[s]; } //!< get name of spreadsheet s
int numCols(int s) { return nr_cols[s]; } //!< get number of columns of spreadsheet s
int numRows(int s,int c) { return nr_rows[s][c]; } //!< get number of rows of column c of spreadsheet s
int maxRows(int s) { return maxrows[s]; } //!< get maximum number of rows of spreadsheet s
char *colName(int s, int c) { return colname[s][c]; } //!< get name of column c of spreadsheet s
char *colType(int s, int c) { return coltype[s][c]; } //!< get type of column c of spreadsheet s
double* Data(int s,int c) { return data[s][c]; } //!< get data of column c of spreadsheet s
char* SData(int s,int c, int r) { return sdata[s][c][r]; } //!< get data strings of column c/row r of spreadsheet s
private:
char* filename; //!< project file name
int version; //!< project version
int nr_spreads; //!< number of spreadsheets
char *spreadname[MAX_SPREADS]; //!< spreadsheet names
int nr_cols[MAX_SPREADS]; //!< number of cols per spreadsheet
int nr_rows[MAX_SPREADS][MAX_COLUMNS]; //!< number of rows per column of spreadsheet
int maxrows[MAX_SPREADS]; //!< max number of rows of spreadsheet
double *data[MAX_SPREADS][MAX_COLUMNS]; //!< data per column per spreadsheet
char* sdata[MAX_SPREADS][MAX_COLUMNS][MAX_ROWS]; //!< data string per row/column per spreadsheet
char* colname[MAX_SPREADS][MAX_COLUMNS]; //!< column names
char* coltype[MAX_SPREADS][MAX_COLUMNS]; //!< column types
};
#endif // OPJFILE_H
syntax highlighted by Code2HTML, v. 0.9.1