|
rllib
1
|
#include <rlspreadsheet.h>

Public Member Functions | |
| rlSpreadsheetWorkbook (char delimitor='\t') | |
| column = 1...N, row = 1...N, page = 1...N | |
| virtual | ~rlSpreadsheetWorkbook () |
| const char * | text (int column, int row, int page) |
| void | setText (int column, int row, int page, const char *text) |
| int | printf (int column, int row, int page, const char *format,...) |
| void | clear () |
| int | read (const char *filename) |
| int | write (const char *filename) |
| int | exists (int column, int row, int page) |
| rlSpreadsheetTable * | getFirstTable () |
| void | setDelimitor (char delimitor) |
Private Attributes | |
| char | delimitor |
| rlSpreadsheetTable * | firstTable |
A series of spreadsheet tables. The class works with CSV files.
Definition at line 96 of file rlspreadsheet.h.
| rlSpreadsheetWorkbook::rlSpreadsheetWorkbook | ( | char | delimitor = '\t' | ) |
column = 1...N, row = 1...N, page = 1...N
Definition at line 428 of file rlspreadsheet.cpp.
{
firstTable = NULL;
delimitor = del;
}
| rlSpreadsheetWorkbook::~rlSpreadsheetWorkbook | ( | ) | [virtual] |
Definition at line 434 of file rlspreadsheet.cpp.
{
rlSpreadsheetTable *item,*last;
item = firstTable;
while(item != NULL)
{
last = item;
item = item->getNextTable();
if(item != last) delete last;
}
}
| void rlSpreadsheetWorkbook::clear | ( | ) |
Definition at line 492 of file rlspreadsheet.cpp.
{
rlSpreadsheetTable *item;
item = firstTable;
while(item != NULL)
{
item->clear();
item = item->getNextTable();
}
}
| int rlSpreadsheetWorkbook::exists | ( | int | column, |
| int | row, | ||
| int | page | ||
| ) |
Definition at line 575 of file rlspreadsheet.cpp.
{
rlSpreadsheetTable *item;
int p;
p = 1;
item = firstTable;
while(item != NULL)
{
if(p == page) return item->exists(column,row);
p++;
item = item->getNextTable();
}
return 0;
}
| rlSpreadsheetTable * rlSpreadsheetWorkbook::getFirstTable | ( | ) |
Definition at line 591 of file rlspreadsheet.cpp.
{
return firstTable;
}
| int rlSpreadsheetWorkbook::printf | ( | int | column, |
| int | row, | ||
| int | page, | ||
| const char * | format, | ||
| ... | |||
| ) |
Definition at line 479 of file rlspreadsheet.cpp.
{
int ret;
char buf[rl_PRINTF_LENGTH_SPREADSHEET]; // should be big enough
va_list ap;
va_start(ap,format);
ret = rlvsnprintf(buf, rl_PRINTF_LENGTH_SPREADSHEET - 1, format, ap);
va_end(ap);
setText(column,row,page,buf);
return ret;
}
| int rlSpreadsheetWorkbook::read | ( | const char * | filename | ) |
Definition at line 504 of file rlspreadsheet.cpp.
{
FILE *fp;
rlSpreadsheetTable *item,*last,*next;
int p = 1;
char buf[16],*fname;
if(filename == NULL) return -1;
// delete old workbook
item = firstTable;
while(item != NULL)
{
last = item;
item = item->getNextTable();
if(item != last) delete last;
}
// read new workbook
fname = new char[strlen(filename)+16];
while(1)
{
strcpy(fname,filename);
sprintf(buf,"%d.txt",p);
strcat(fname,buf);
// test if file exists
fp = fopen(fname,"r");
if(fp == NULL) break;
fclose(fp);
if(p==1)
{
item = firstTable = new rlSpreadsheetTable(delimitor);
}
else
{
next = new rlSpreadsheetTable(delimitor);
item->setNextTable(next);
item = next;
}
if(item->read(fname) < 0) break;
p++;
}
delete [] fname;
return 0;
}
| void rlSpreadsheetWorkbook::setDelimitor | ( | char | delimitor | ) |
Definition at line 596 of file rlspreadsheet.cpp.
{
delimitor = _delimitor;
}
| void rlSpreadsheetWorkbook::setText | ( | int | column, |
| int | row, | ||
| int | page, | ||
| const char * | text | ||
| ) |
Definition at line 461 of file rlspreadsheet.cpp.
{
int p = 1;
rlSpreadsheetTable *item,*nextitem;
if(page < 1) return;
if(firstTable == NULL) firstTable = new rlSpreadsheetTable;
item = firstTable;
while(1)
{
if(p == page) { item->setText(column, row, text); return; }
nextitem = item->getNextTable();
if(nextitem == NULL) item->setNextTable(new rlSpreadsheetTable);
item = item->getNextTable();
p++;
}
}
| const char * rlSpreadsheetWorkbook::text | ( | int | column, |
| int | row, | ||
| int | page | ||
| ) |
Definition at line 446 of file rlspreadsheet.cpp.
{
int p = 1;
rlSpreadsheetTable *item;
item = firstTable;
while(item != NULL)
{
if(p == page) return item->text(column, row);
item = item->getNextTable();
p++;
}
return null_string;
}
| int rlSpreadsheetWorkbook::write | ( | const char * | filename | ) |
Definition at line 550 of file rlspreadsheet.cpp.
{
rlSpreadsheetTable *item = NULL;
int p = 1;
char buf[16],*fname;
if(filename == NULL) return -1;
// write workbook
fname = new char[strlen(filename)+16];
while(1)
{
strcpy(fname,filename);
sprintf(buf,"%d.txt",p);
strcat(fname,buf);
if(p==1) item = firstTable;
else item = item->getNextTable();
if(item == NULL) break;
if(item->write(fname) < 0) break;
p++;
}
delete [] fname;
return 0;
}
char rlSpreadsheetWorkbook::delimitor [private] |
Definition at line 112 of file rlspreadsheet.h.
Definition at line 113 of file rlspreadsheet.h.
1.7.5.1