Changeset 1354 in Sophya for trunk/SophyaExt/FitsIOServer


Ignore:
Timestamp:
Dec 15, 2000, 6:58:13 PM (25 years ago)
Author:
lemeur
Message:

methode getStringKeyword

Location:
trunk/SophyaExt/FitsIOServer
Files:
2 edited

Legend:

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

    r1353 r1354  
    345345}
    346346
    347 bool FitsInFile::hasKeyword(string keyw, int hdunum)
     347string FitsInFile::getStringKeyword(int hdunum, string keyw, int& retStatus)
     348{
     349  string s;
     350  retStatus = 0;
     351  int status = 0;
     352  if (hdunum != hdunum_ )
     353    {
     354      int hdutype;
     355      fits_movabs_hdu(fptr_,hdunum,&hdutype,&status);
     356    }
     357 
     358  char value[FLEN_VALUE];
     359  char* keyname= const_cast<char*>(keyw.c_str());
     360  fits_read_key_str(fptr_,keyname,value,NULL,&status);
     361  if (status == 0)
     362    s = string(value);
     363  else retStatus = status;
     364  if (hdunum != hdunum_ )
     365    {
     366      int hdutype;
     367      if (hdunum_ != 0)
     368        fits_movabs_hdu(fptr_,hdunum_,&hdutype,&status);
     369      else           fits_movabs_hdu(fptr_,1,&hdutype,&status);
     370     
     371    }
     372  return s;
     373}
     374bool FitsInFile::hasKeyword(int hdunum, string keyw)
    348375     {
    349376       bool has=false;
     
    18861913  char* cvalue = new char[16];
    18871914  sprintf(cvalue,"%e",value);
    1888   //  char* kn = const_cast<char*>(keyname.c_str());
    1889   //  char* cm = const_cast<char*>(comment.c_str());
    18901915  FitsKeyword kw(keyname, string(cvalue), comment);
    18911916  mots_cles_.push_back(kw);
     
    19351960      {
    19361961        status=0;
     1962        if (status == VALUE_UNDEFINED) cout << "WARNING (FitsKeyword) : undefined keyword value " << endl;
    19371963        datatype_=' ';
    19381964      }
     
    19431969      case 'C':
    19441970        {
    1945           svalue_ = string(val);
     1971          strip(valk, 'B','\'');
     1972          svalue_ = string(valk);
    19461973            break;
    19471974        }
     
    19531980      case 'L':
    19541981        {
    1955           //      cout << " ATTENTION : pb a regler avec logical!" << endl;
    1956           if (value[0] == 'T') ivalue_ = 1;
    1957           else ivalue_ = 0;
     1982          bool bb = value.c_str();
     1983          ivalue_ = (int)bb;
    19581984          break;
    19591985          }
  • trunk/SophyaExt/FitsIOServer/fitsfile.h

    r1353 r1354  
    135135
    136136   void  ReadHeader(int hdunum);
    137 bool hasKeyword(string keyw, int hdunum);
     137bool hasKeyword(int hdunum, string keyw);
     138string getStringKeyword(int hdunum, string keyname,int& retStatus);
    138139
    139140  /*! \return a reference on a DVList containing the keywords from FITS file */
Note: See TracChangeset for help on using the changeset viewer.