#include "CifFileObj.h"
#include <iostream.h>

#define FALSE 0


int main() {
  CifFileObj * fobjR = NULL;

  ISTable * s=NULL;
  CifString cs, cs1,cs2,cs3,cs4;
  int i,j,k, nRow=100, nCol=10; 

  fobjR = new CifFileObj("./test/TESTFILE4", WRITE_MODE, 80, "?", 1);

  for (k=0; k < 10; k++) {
    cs.Clear(); cs.Copy("TABLE"); cs+=k;
    s = new ISTable(cs.Text());
    for (i=0; i < nCol; i++) {
      cs1.Clear(); cs1.Copy("Column-"); cs1 += i;
    s->AddColumn(cs1.Text());
    }
    for (j = 0; j < nRow; j++) {
      s->AddRow();
      for (i=0; i < nCol; i++) {
	cs2.Clear(); cs2.Copy("C"); cs2+=i; cs2+="-R"; cs2+=j;
	s->AddElementToRow(cs2, j);
      }
    }
    fobjR->WriteTable(s,"BLOCK-1",s->GetName());
  }

  cs1.Clear(); cs1.Copy("Updated");

  for (k=1; k < 10; k++) {
    cs.Clear(); cs.Copy("TABLE"); cs+=k;
    s=fobjR->GetTablePtr("BLOCK-1",cs.Text());
    for (i=0; i < nCol; i++) {
      for (j=0; j < nRow; j++ ) {
	s->UpdateCell(cs1,i,j);
      }
    }
    cerr << "Table " << cs.Text() << endl;
    fobjR->WriteTable(s,"BLOCK-1",s->GetName());
  }

  s->PrintTable();


  fobjR->CloseFile(1);
  if (fobjR) delete fobjR;
  exit(0);
}
