Ignore:
Timestamp:
Apr 27, 2005, 1:48:19 PM (20 years ago)
Author:
ansari
Message:

1/ Corrections diverses ds BaseDataTable, en particulier GetSegment() -> GetCstSegment(), et ameliorations/debug divers
2/ Classe SWPPFDataTable debugge, rendu +/- operationnelle
3/ Gestionnaire PPersist de DataTable et SWPPFDataTable fusionnee en une seule
classe ObjFileIO<BaseDataTable> - mis ds fio_dtable.cc
4/ mis a jour histats.h avec swppfdtable.h, objlist.list et histinit.cc

Reza, 27 Avril 2005

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/HiStats/basedtable.cc

    r2693 r2699  
    117117sa_size_t BaseDataTable::IndexNom(char const* nom) const
    118118{
    119   for(sa_size_t k=0; k<NVar(); k++)
    120     if ( mNames[k].nom == nom )  return k;
    121   throw NotFoundExc("BaseDataTable::IndexNom() : column name not found ");
     119  for(sa_size_t k=0; k<NVar(); k++)
     120    if ( mNames[k].nom == nom )      return k;
     121  return -1;
     122  // Reza:Avril 2005 : PINtuple se base sur le renvoi de -1 et pas d'une exception
     123  //  throw NotFoundExc("BaseDataTable::IndexNom() : column name not found ");
    122124}
    123125
     
    202204  sa_size_t off = n%mSegSz;
    203205  for(sa_size_t k=0; k<mIColsP.size(); k++)
    204     mVarMTV[mIColIdx[k]] = mIColsP[k]->GetSegment(bid)[off];
     206    mVarMTV[mIColIdx[k]] = mIColsP[k]->GetCstSegment(bid)[off];
    205207  for(sa_size_t k=0; k<mLColsP.size(); k++)
    206     mVarMTV[mLColIdx[k]] = mLColsP[k]->GetSegment(bid)[off];
     208    mVarMTV[mLColIdx[k]] = mLColsP[k]->GetCstSegment(bid)[off];
    207209  for(sa_size_t k=0; k<mFColsP.size(); k++)
    208     mVarMTV[mFColIdx[k]] = mFColsP[k]->GetSegment(bid)[off];
     210    mVarMTV[mFColIdx[k]] = mFColsP[k]->GetCstSegment(bid)[off];
    209211  for(sa_size_t k=0; k<mDColsP.size(); k++)
    210     mVarMTV[mDColIdx[k]] = mDColsP[k]->GetSegment(bid)[off];
     212    mVarMTV[mDColIdx[k]] = mDColsP[k]->GetCstSegment(bid)[off];
    211213  for(sa_size_t k=0; k<mSColsP.size(); k++)
    212     mVarMTV[mSColIdx[k]] = atof(mSColsP[k]->GetSegment(bid)[off].c_str());
     214    mVarMTV[mSColIdx[k]] = atof(mSColsP[k]->GetCstSegment(bid)[off].c_str());
    213215
    214216  return mVarMTV;
     
    307309  sa_size_t off = n%mSegSz;
    308310  for(sa_size_t k=0; k<mIColsP.size(); k++)
    309     mVarD[mIColIdx[k]] = mIColsP[k]->GetSegment(bid)[off];
     311    mVarD[mIColIdx[k]] = mIColsP[k]->GetCstSegment(bid)[off];
    310312  for(sa_size_t k=0; k<mLColsP.size(); k++)
    311     mVarD[mLColIdx[k]] = mLColsP[k]->GetSegment(bid)[off];
     313    mVarD[mLColIdx[k]] = mLColsP[k]->GetCstSegment(bid)[off];
    312314  for(sa_size_t k=0; k<mFColsP.size(); k++)
    313     mVarD[mFColIdx[k]] = mFColsP[k]->GetSegment(bid)[off];
     315    mVarD[mFColIdx[k]] = mFColsP[k]->GetCstSegment(bid)[off];
    314316  for(sa_size_t k=0; k<mDColsP.size(); k++)
    315     mVarD[mDColIdx[k]] = mDColsP[k]->GetSegment(bid)[off];
     317    mVarD[mDColIdx[k]] = mDColsP[k]->GetCstSegment(bid)[off];
    316318  for(sa_size_t k=0; k<mSColsP.size(); k++)
    317     mVarD[mSColIdx[k]] = atof(mSColsP[k]->GetSegment(bid)[off].c_str());
     319    mVarD[mSColIdx[k]] = atof(mSColsP[k]->GetCstSegment(bid)[off].c_str());
    318320
    319321  return mVarD;
     
    326328  if ((n < 0) || (n >= NEntry()))
    327329    throw RangeCheckError("BaseDataTable::GetCell() out of range line index n");
    328   if ((k < 0) || (n >= NVar()))
     330  if ((k < 0) || (k >= NVar()))
    329331    throw RangeCheckError("BaseDataTable::GetCell() out of range column index k");
    330332  double rv = BADVAL;
     
    332334  sa_size_t bid = n/mSegSz;
    333335  sa_size_t off = n%mSegSz;
     336
    334337  switch (mNames[k].type) {
    335338  case IntegerField :
    336     rv = mIColsP[sk]->GetSegment(bid)[off];
     339    rv = mIColsP[sk]->GetCstSegment(bid)[off];
    337340    break;
    338341  case LongField :
    339     rv = mLColsP[sk]->GetSegment(bid)[off];
     342    rv = mLColsP[sk]->GetCstSegment(bid)[off];
    340343    break;
    341344  case FloatField :
    342     rv = mFColsP[sk]->GetSegment(bid)[off];
     345    rv = mFColsP[sk]->GetCstSegment(bid)[off];
    343346    break;
    344347  case DoubleField :
    345     rv = mDColsP[sk]->GetSegment(bid)[off];
     348    rv = mDColsP[sk]->GetCstSegment(bid)[off];
    346349    break;
    347350  case StringField :
    348     rv = atof(mSColsP[sk]->GetSegment(bid)[off].c_str());
     351    rv = atof(mSColsP[sk]->GetCstSegment(bid)[off].c_str());
    349352    break;
    350353  default:
     
    365368  if ((n < 0) || (n >= NEntry()))
    366369    throw RangeCheckError("BaseDataTable::GetCell() out of range line index n");
    367   if ((k < 0) || (n >= NVar()))
     370  if ((k < 0) || (k >= NVar()))
    368371    throw RangeCheckError("BaseDataTable::GetCell() out of range column index k");
    369372  MuTyV rv;;
     
    373376  switch (mNames[k].type) {
    374377  case IntegerField :
    375     rv = mIColsP[sk]->GetSegment(bid)[off];
     378    rv = mIColsP[sk]->GetCstSegment(bid)[off];
    376379    break;
    377380  case LongField :
    378     rv = mLColsP[sk]->GetSegment(bid)[off];
     381    rv = mLColsP[sk]->GetCstSegment(bid)[off];
    379382    break;
    380383  case FloatField :
    381     rv = mFColsP[sk]->GetSegment(bid)[off];
     384    rv = mFColsP[sk]->GetCstSegment(bid)[off];
    382385    break;
    383386  case DoubleField :
    384     rv = mDColsP[sk]->GetSegment(bid)[off];
     387    rv = mDColsP[sk]->GetCstSegment(bid)[off];
    385388    break;
    386389  case StringField :
    387     rv = atof(mSColsP[sk]->GetSegment(bid)[off].c_str());
     390    rv = mSColsP[sk]->GetCstSegment(bid)[off];
    388391    break;
    389392  default:
     
    420423  case IntegerField :
    421424    for(size_t is=0; is<mIColsP[sk]->NbSegments(); is++) {
    422       int_4* sp = mIColsP[sk]->GetSegment(is);
     425      const int_4* sp = mIColsP[sk]->GetCstSegment(is);
    423426      for(size_t n=0; n<mIColsP[sk]->SegmentSize(); n++) {
    424427        if (cnt >= NEntry())  break;
     
    432435  case LongField :
    433436    for(size_t is=0; is<mLColsP[sk]->NbSegments(); is++) {
    434       int_8* sp = mLColsP[sk]->GetSegment(is);
     437      const int_8* sp = mLColsP[sk]->GetCstSegment(is);
    435438      for(size_t n=0; n<mLColsP[sk]->SegmentSize(); n++) {
    436439        if (cnt >= NEntry())  break;
     
    443446  case FloatField :
    444447    for(size_t is=0; is<mFColsP[sk]->NbSegments(); is++) {
    445       r_4* sp = mFColsP[sk]->GetSegment(is);
     448      const r_4* sp = mFColsP[sk]->GetCstSegment(is);
    446449      for(size_t n=0; n<mFColsP[sk]->SegmentSize(); n++) {
    447450        if (cnt >= NEntry())  break;
     
    454457  case DoubleField :
    455458    for(size_t is=0; is<mDColsP[sk]->NbSegments(); is++) {
    456       r_8* sp = mDColsP[sk]->GetSegment(is);
     459      const r_8* sp = mDColsP[sk]->GetCstSegment(is);
    457460      for(size_t n=0; n<mDColsP[sk]->SegmentSize(); n++) {
    458461        if (cnt >= NEntry())  break;
     
    524527string BaseDataTable::LineHeaderToString() const
    525528{
    526   char buff[32];
    527   string rets=" Num    ";
     529  string rets,s;
     530 
    528531  for(int i=0; i<NVar(); i++) {
    529     sprintf(buff, "%8s ", NomIndex(i).c_str() );
    530     rets += buff;
    531   }
    532   rets += '\n';
     532    s = mNames[i].nom;
     533    s += ' ';
     534    size_t l = s.length();
     535    for(size_t ii=l; ii<10; ii++) s += ' ';
     536    rets += s;
     537  }
    533538  return(rets); 
    534539}
     
    547552    switch (mNames[k].type) {
    548553    case IntegerField :
    549       rv = mIColsP[sk]->GetSegment(bid)[off];
     554      rv = mIColsP[sk]->GetCstSegment(bid)[off];
    550555      break;
    551556    case LongField :
    552       rv = mLColsP[sk]->GetSegment(bid)[off];
     557      rv = mLColsP[sk]->GetCstSegment(bid)[off];
    553558      break;
    554559    case FloatField :
    555       rv = mFColsP[sk]->GetSegment(bid)[off];
     560      rv = mFColsP[sk]->GetCstSegment(bid)[off];
    556561      break;
    557562    case DoubleField :
    558       rv = mDColsP[sk]->GetSegment(bid)[off];
     563      rv = mDColsP[sk]->GetCstSegment(bid)[off];
    559564      break;
    560565    case StringField :
    561       rv = atof(mSColsP[sk]->GetSegment(bid)[off].c_str());
     566      rv = mSColsP[sk]->GetCstSegment(bid)[off];
    562567    break;
    563568    default:
     
    565570      break;
    566571    }
    567     rs += " ";
    568     rs += (string)rv;
     572    string s = (string)rv;
     573    s += ' ';
     574    size_t l = s.length();
     575    for(size_t ii=l; ii<10; ii++) s += ' ';
     576    rs += s;
    569577  }
    570578  return rs;
Note: See TracChangeset for help on using the changeset viewer.