Changeset 1359 in Sophya for trunk/SophyaExt


Ignore:
Timestamp:
Dec 19, 2000, 12:27:39 PM (25 years ago)
Author:
lemeur
Message:

extension bntblLineRW aux long et byte

Location:
trunk/SophyaExt/FitsIOServer
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaExt/FitsIOServer/fitsbntbllineRW.cc

    r1351 r1359  
    5050  vector<int> IfitsCol;
    5151  vector<int> SfitsCol;
     52  vector<int> LfitsCol;
     53  vector<int> BfitsCol;
    5254  for (k=0; k<nbcols;k++)
    5355    {
    5456       FitsFile::FitsDataType ss= inFits_->ColTypeFromFits(k);
     57
    5558      if (ss == FitsFile::FitsDataType_double) DfitsCol.push_back(k);
    5659      else if (ss == FitsFile::FitsDataType_float) FfitsCol.push_back(k);
    5760      else if (ss == FitsFile::FitsDataType_int) IfitsCol.push_back(k);
     61      else if (ss == FitsFile::FitsDataType_long) LfitsCol.push_back(k);
     62      else if (ss == FitsFile::FitsDataType_byte) BfitsCol.push_back(k);
    5863      else if (ss == FitsFile::FitsDataType_char) SfitsCol.push_back(k);
    5964      else {
     
    7681      ColN[compt++] =  inFits_->ColNameFromFits(IfitsCol[k]);
    7782    }
     83  for (k=0; k<LfitsCol.size(); k++)
     84    {
     85      ColN[compt++] =  inFits_->ColNameFromFits(LfitsCol[k]);
     86    }
     87  for (k=0; k<BfitsCol.size(); k++)
     88    {
     89      ColN[compt++] =  inFits_->ColNameFromFits(BfitsCol[k]);
     90    }
    7891  for (k=0; k<SfitsCol.size(); k++)
    7992    {
     
    8194    }
    8295
    83   ligne_.setFormat(DfitsCol.size(), FfitsCol.size(), IfitsCol.size(), SfitsCol.size(), ColN);
     96  ligne_.setFormat(DfitsCol.size(), FfitsCol.size(), IfitsCol.size(), LfitsCol.size(), BfitsCol.size(),SfitsCol.size(), ColN);
    8497}
    8598
     
    99112
    100113
    101 FITS_BntblLineWriter::FITS_BntblLineWriter(char inputfile[],int dc, int fc,int ic, int cc, vector<string> names,DVList* ptr_dvl,  FitsFile::WriteMode wrm)
     114FITS_BntblLineWriter::FITS_BntblLineWriter(char inputfile[],int dc, int fc,int ic, int lc, int bc, int cc, vector<string> names,DVList* ptr_dvl,  FitsFile::WriteMode wrm)
    102115{
    103116  int k;
    104   int nbcols = dc+fc+ic+cc;
     117  int nbcols = dc+fc+ic+cc+lc+bc;
    105118  if (nbcols !=  names.size())
    106119    {
     
    123136      types+='I';
    124137    }
     138  for (k=0; k<lc;k++)
     139    {
     140      types+='J';
     141    }
     142  for (k=0; k<bc;k++)
     143    {
     144      types+='B';
     145    }
    125146  for (k=0; k<cc;k++)
    126147    {
    127148      types+='A';
    128       StringSizes[k] = names[dc+fc+ic+k].length();
     149      StringSizes[k] = names[dc+fc+ic+lc+bc+k].length();
    129150    }           
    130151  string extname("Lines_on_Binary_tbl");
    131152
    132153  outFits_->makeHeaderBntblOnFits(types, names, 1, nbcols, ptr_dvl, extname,StringSizes);
    133     ligne_.setFormat(dc, fc, ic, cc, names);
     154    ligne_.setFormat(dc, fc, ic,lc,bc,cc, names);
    134155
    135156}
  • trunk/SophyaExt/FitsIOServer/fitsbntbllineRW.h

    r1300 r1359  
    6161
    6262public:
    63  FITS_BntblLineWriter(char inputfile[],int dc, int fc, int ic, int cc, vector<string> names, DVList* dvl=NULL, FitsFile::WriteMode wrm = FitsFile::clear);
     63 FITS_BntblLineWriter(char inputfile[],int dc, int fc, int ic, int lc, int bc,int cc, vector<string> names, DVList* dvl=NULL, FitsFile::WriteMode wrm = FitsFile::clear);
    6464~FITS_BntblLineWriter();
    6565 void WriteNextLine( BnTblLine& WorkLine);
  • trunk/SophyaExt/FitsIOServer/fitsfile.cc

    r1354 r1359  
    88
    99
    10 void BnTblLine::setFormat(int dc, int fc, int ic, int cc, vector<string> names)
     10void BnTblLine::setFormat(int dc, int fc, int ic,  int lc, int bc,int cc, vector<string> names)
    1111   {
    12     int nbcols = dc + fc + ic + cc;
     12    int nbcols = dc + fc + ic + cc + lc + bc;
    1313    int maxName = names.size();
    1414    if (nbcols != maxName)
     
    2323    if (ic >0) idata_ = vector<int>(fc);
    2424    if (cc >0) cdata_ = vector<string>(fc);
     25    if (lc >0) ldata_ = vector<long>(lc);
     26    if (bc >0) bdata_ = vector<unsigned char>(bc);
    2527   }
    2628
    2729bool BnTblLine::sameFormat(const BnTblLine& btl) const
    2830   {
    29      if (btl.ddata_.size() == ddata_.size() && btl.fdata_.size() == fdata_.size() && btl.idata_.size() == idata_.size() && btl.cdata_.size() == cdata_.size()) return true;
     31     if (btl.ddata_.size() == ddata_.size() && btl.fdata_.size() == fdata_.size() && btl.idata_.size() == idata_.size() && btl.cdata_.size() == cdata_.size() &&  btl.ldata_.size() == ldata_.size() &&  btl.bdata_.size() == bdata_.size()) return true;
    3032     else return false;
    3133   }
     
    4951     cout << " *** variables string  " << endl;
    5052     for (k=0; k < cdata_.size(); k++) cout << cdata_[k] << " ";
     53     cout << endl;
     54     cout << " *** variables long  " << endl;
     55     for (k=0; k < ldata_.size(); k++) cout << ldata_[k] << " ";
     56     cout << endl;
     57     cout << " *** variables byte  " << endl;
     58     for (k=0; k < bdata_.size(); k++) cout << (int)bdata_[k] << " ";
    5159     cout << endl;
    5260     cout << " ***************************** " << endl;
     
    721729          break;
    722730        case FitsDataType_int :
    723           fits_read_col(fptr_,TINT,ncol+1,NoLine+1,1,1,&inull,&ligne.idata_[icount++],
    724                         &anull,&status);
     731          fits_read_col(fptr_,TINT,ncol+1,NoLine+1,1,1,&inull,&ligne.idata_[icount++], &anull,&status);
     732          break;
     733        case FitsDataType_long :
     734          fits_read_col(fptr_,TLONG,ncol+1,NoLine+1,1,1,&inull,&ligne.ldata_[icount++], &anull,&status);
     735          break;
     736        case FitsDataType_byte :
     737          fits_read_col(fptr_,TBYTE,ncol+1,NoLine+1,1,1,&inull,&ligne.bdata_[icount++], &anull,&status);
    725738          break;
    726739        case FitsDataType_char :
     
    10741087              break;
    10751088            case TLONG :
    1076               types.push_back(FitsDataType_int);
     1089              types.push_back(FitsDataType_long);
    10771090              break;
    10781091            case TSHORT :
     
    11111124              break;
    11121125            case TLONG :
    1113               types.push_back(FitsDataType_int);
     1126              types.push_back(FitsDataType_long);
    11141127              break;
    11151128            case TINT :
     
    11251138              break;
    11261139            case TBYTE :
    1127               types.push_back(FitsDataType_char);
    1128               taille_des_chaines.push_back(width);
    1129               rept/=width;
     1140              types.push_back(FitsDataType_byte);
    11301141              break;
    11311142            default :
     
    16941705      fits_write_col(fptr_,TINT,ncol+1,NoLine+1,1,1, &ligne.idata_[k] ,&status);
    16951706      if( status ) printerror( status, "PutBinTabLine : erreur ecriture entier"  );
     1707    }
     1708  for (k=0; k<ligne.ldata_.size(); k++, ncol++)
     1709    {
     1710      fits_write_col(fptr_,TLONG,ncol+1,NoLine+1,1,1, &ligne.ldata_[k] ,&status);
     1711      if( status ) printerror( status, "PutBinTabLine : erreur ecriture entier long"  );
     1712    }
     1713  for (k=0; k<ligne.bdata_.size(); k++, ncol++)
     1714    {
     1715      fits_write_col(fptr_,TBYTE,ncol+1,NoLine+1,1,1, &ligne.bdata_[k] ,&status);
     1716      if( status ) printerror( status, "PutBinTabLine : erreur ecriture byte"  );
    16961717    }
    16971718 
  • trunk/SophyaExt/FitsIOServer/fitsfile.h

    r1354 r1359  
    9393     FitsDataType_int,
    9494     FitsDataType_char,
    95      FitsDataType_ASCII
     95     FitsDataType_ASCII,
     96     FitsDataType_long,
     97     FitsDataType_byte
    9698   };
    9799
     
    324326 {
    325327   BnTblLine() {}
    326    void setFormat(int dc, int fc, int ic, int cc, vector<string> names);
     328   void setFormat(int dc, int fc, int ic, int lc, int bc, int cc, vector<string> names);
    327329   bool sameFormat(const BnTblLine& btl) const;
    328330
     
    331333   vector<double> ddata_;
    332334   vector<float>  fdata_;
    333    vector<int>    idata_;
     335   vector<int>    idata_; 
    334336   vector<string>  cdata_;
    335337   vector<string> ColName_;
     338   vector<long>   ldata_;
     339   vector<unsigned char>   bdata_;
     340
    336341 };
    337342
Note: See TracChangeset for help on using the changeset viewer.