ClarisWksDbaseContent Class Reference

small structure used to parse main content of a spreadsheet/database zone More...

#include <ClarisWksDbaseContent.hxx>

Classes

struct  Column
 struct which stores a column in ClarisWksDbaseContent More...
struct  Record
 struct which stores a record in ClarisWksDbaseContent More...

Public Member Functions

 ClarisWksDbaseContent (ClarisWksDocument &document, bool spreadsheet)
 constructor
 ~ClarisWksDbaseContent ()
 destructor
bool readContent ()
 try to read the record structure
bool readFormula (MWAWVec2i const &cPos, long endPos, std::vector< MWAWCellContent::FormulaInstruction > &formula, std::string &error)
 read to read a formula
bool getExtrema (MWAWVec2i &min, MWAWVec2i &max) const
 returns the dimension of the read data
bool getRecordList (std::vector< int > &list) const
 returns the list of filled record/row
bool getColumnList (int row, std::vector< int > &list) const
 returns the list of filled columns
bool get (MWAWVec2i const &pos, Record &data) const
 retrieves the cell data
bool send (MWAWVec2i const &pos)
 try to send a cell content to the listener
void setDatabaseFormats (std::vector< ClarisWksStyleManager::CellFormat > const &format)
 set the field format ( for database )

Protected Member Functions

bool readColumnList ()
 try to read the columns list structure(CTAB)
bool readColumn (int c)
 try to read the column structure(COLM): a list of chnk
bool readRecordList (MWAWVec2i const &where, Column &col)
 try to read a list of records(CHNK)
bool readRecordSS (MWAWVec2i const &where, long pos, Record &record)
 try to read a spreadsheet record
bool readRecordSSV1 (MWAWVec2i const &where, long pos, Record &record)
 try to read a spreadsheet record(v1-v3)
bool readRecordDB (MWAWVec2i const &where, long pos, Record &record)
 try to read a database record
void send (double val, bool isNotaNumber, ClarisWksStyleManager::CellFormat const &format)
 send a double with a corresponding cell format
bool readCellInFormula (MWAWVec2i const &pos, MWAWCellContent::FormulaInstruction &instr)
 reads a cell
bool readString (long endPos, std::string &res)
 try to read a string
bool readNumber (long endPos, double &res, bool &isNan)
 try to read a number
void updateCellPositionsSet () const
 update the position set

Protected Attributes

int m_version
 the file version
bool m_isSpreadsheet
 a bool to know if this is a spreadsheet or a database
ClarisWksDocumentm_document
 the document
MWAWParserStatePtr m_parserState
 the parser state
std::map< int, Columnm_idColumnMap
 a map col id to column
std::set< MWAWVec2im_positionSet
 a set of cell position (sorted by row)
std::vector< ClarisWksStyleManager::CellFormatm_dbFormatList
 the databse format

Detailed Description

small structure used to parse main content of a spreadsheet/database zone

Constructor & Destructor Documentation

◆ ClarisWksDbaseContent()

ClarisWksDbaseContent::ClarisWksDbaseContent ( ClarisWksDocument & document,
bool spreadsheet )

constructor

◆ ~ClarisWksDbaseContent()

ClarisWksDbaseContent::~ClarisWksDbaseContent ( )

destructor

Member Function Documentation

◆ get()

bool ClarisWksDbaseContent::get ( MWAWVec2i const & pos,
ClarisWksDbaseContent::Record & record ) const

retrieves the cell data

Referenced by send().

◆ getColumnList()

bool ClarisWksDbaseContent::getColumnList ( int row,
std::vector< int > & list ) const

returns the list of filled columns

◆ getExtrema()

bool ClarisWksDbaseContent::getExtrema ( MWAWVec2i & min,
MWAWVec2i & max ) const

returns the dimension of the read data

◆ getRecordList()

bool ClarisWksDbaseContent::getRecordList ( std::vector< int > & list) const

returns the list of filled record/row

◆ readCellInFormula()

bool ClarisWksDbaseContent::readCellInFormula ( MWAWVec2i const & pos,
MWAWCellContent::FormulaInstruction & instr )
protected

reads a cell

Referenced by readFormula().

◆ readColumn()

bool ClarisWksDbaseContent::readColumn ( int c)
protected

try to read the column structure(COLM): a list of chnk

Referenced by readColumnList().

◆ readColumnList()

bool ClarisWksDbaseContent::readColumnList ( )
protected

try to read the columns list structure(CTAB)

Referenced by readContent().

◆ readContent()

bool ClarisWksDbaseContent::readContent ( )

try to read the record structure

ARGHH: this zone is almost the only zone which count the header in sz ...

◆ readFormula()

bool ClarisWksDbaseContent::readFormula ( MWAWVec2i const & cPos,
long endPos,
std::vector< MWAWCellContent::FormulaInstruction > & formula,
std::string & error )

read to read a formula

Referenced by readFormula(), readRecordSS(), and readRecordSSV1().

◆ readNumber()

bool ClarisWksDbaseContent::readNumber ( long endPos,
double & res,
bool & isNan )
protected

try to read a number

Referenced by readFormula().

◆ readRecordDB()

bool ClarisWksDbaseContent::readRecordDB ( MWAWVec2i const & where,
long pos,
ClarisWksDbaseContent::Record & record )
protected

try to read a database record

Referenced by readRecordList().

◆ readRecordList()

bool ClarisWksDbaseContent::readRecordList ( MWAWVec2i const & where,
Column & col )
protected

try to read a list of records(CHNK)

Referenced by readColumn().

◆ readRecordSS()

bool ClarisWksDbaseContent::readRecordSS ( MWAWVec2i const & where,
long pos,
ClarisWksDbaseContent::Record & record )
protected

try to read a spreadsheet record

checkme: there does not seem to be alignment, but another variable before the result

Referenced by readRecordList().

◆ readRecordSSV1()

bool ClarisWksDbaseContent::readRecordSSV1 ( MWAWVec2i const & where,
long pos,
ClarisWksDbaseContent::Record & record )
protected

try to read a spreadsheet record(v1-v3)

Referenced by readRecordSS().

◆ readString()

bool ClarisWksDbaseContent::readString ( long endPos,
std::string & res )
protected

try to read a string

Referenced by readFormula().

◆ send() [1/2]

void ClarisWksDbaseContent::send ( double val,
bool isNotaNumber,
ClarisWksStyleManager::CellFormat const & format )
protected

send a double with a corresponding cell format

◆ send() [2/2]

bool ClarisWksDbaseContent::send ( MWAWVec2i const & pos)

try to send a cell content to the listener

Referenced by send().

◆ setDatabaseFormats()

void ClarisWksDbaseContent::setDatabaseFormats ( std::vector< ClarisWksStyleManager::CellFormat > const & format)

set the field format ( for database )

◆ updateCellPositionsSet()

void ClarisWksDbaseContent::updateCellPositionsSet ( ) const
protected

update the position set

Referenced by getColumnList().

Member Data Documentation

◆ m_dbFormatList

std::vector<ClarisWksStyleManager::CellFormat> ClarisWksDbaseContent::m_dbFormatList
protected

the databse format

Referenced by ClarisWksDbaseContent(), get(), and setDatabaseFormats().

◆ m_document

ClarisWksDocument& ClarisWksDbaseContent::m_document
protected

◆ m_idColumnMap

std::map<int, Column> ClarisWksDbaseContent::m_idColumnMap
protected

◆ m_isSpreadsheet

bool ClarisWksDbaseContent::m_isSpreadsheet
protected

a bool to know if this is a spreadsheet or a database

Referenced by ClarisWksDbaseContent(), get(), readColumn(), readColumnList(), readContent(), readRecordList(), and setDatabaseFormats().

◆ m_parserState

◆ m_positionSet

std::set<MWAWVec2i> ClarisWksDbaseContent::m_positionSet
mutableprotected

a set of cell position (sorted by row)

Referenced by ClarisWksDbaseContent(), getColumnList(), and updateCellPositionsSet().

◆ m_version

int ClarisWksDbaseContent::m_version
protected

The documentation for this class was generated from the following files:

Generated on Sun Jun 29 2025 04:36:26 for libmwaw by doxygen 1.14.0