Changeset 1359 in Sophya
- Timestamp:
- Dec 19, 2000, 12:27:39 PM (25 years ago)
- Location:
- trunk/SophyaExt/FitsIOServer
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaExt/FitsIOServer/fitsbntbllineRW.cc
r1351 r1359 50 50 vector<int> IfitsCol; 51 51 vector<int> SfitsCol; 52 vector<int> LfitsCol; 53 vector<int> BfitsCol; 52 54 for (k=0; k<nbcols;k++) 53 55 { 54 56 FitsFile::FitsDataType ss= inFits_->ColTypeFromFits(k); 57 55 58 if (ss == FitsFile::FitsDataType_double) DfitsCol.push_back(k); 56 59 else if (ss == FitsFile::FitsDataType_float) FfitsCol.push_back(k); 57 60 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); 58 63 else if (ss == FitsFile::FitsDataType_char) SfitsCol.push_back(k); 59 64 else { … … 76 81 ColN[compt++] = inFits_->ColNameFromFits(IfitsCol[k]); 77 82 } 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 } 78 91 for (k=0; k<SfitsCol.size(); k++) 79 92 { … … 81 94 } 82 95 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); 84 97 } 85 98 … … 99 112 100 113 101 FITS_BntblLineWriter::FITS_BntblLineWriter(char inputfile[],int dc, int fc,int ic, int cc,vector<string> names,DVList* ptr_dvl, FitsFile::WriteMode wrm)114 FITS_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) 102 115 { 103 116 int k; 104 int nbcols = dc+fc+ic+cc ;117 int nbcols = dc+fc+ic+cc+lc+bc; 105 118 if (nbcols != names.size()) 106 119 { … … 123 136 types+='I'; 124 137 } 138 for (k=0; k<lc;k++) 139 { 140 types+='J'; 141 } 142 for (k=0; k<bc;k++) 143 { 144 types+='B'; 145 } 125 146 for (k=0; k<cc;k++) 126 147 { 127 148 types+='A'; 128 StringSizes[k] = names[dc+fc+ic+ k].length();149 StringSizes[k] = names[dc+fc+ic+lc+bc+k].length(); 129 150 } 130 151 string extname("Lines_on_Binary_tbl"); 131 152 132 153 outFits_->makeHeaderBntblOnFits(types, names, 1, nbcols, ptr_dvl, extname,StringSizes); 133 ligne_.setFormat(dc, fc, ic, 154 ligne_.setFormat(dc, fc, ic,lc,bc,cc, names); 134 155 135 156 } -
trunk/SophyaExt/FitsIOServer/fitsbntbllineRW.h
r1300 r1359 61 61 62 62 public: 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); 64 64 ~FITS_BntblLineWriter(); 65 65 void WriteNextLine( BnTblLine& WorkLine); -
trunk/SophyaExt/FitsIOServer/fitsfile.cc
r1354 r1359 8 8 9 9 10 void BnTblLine::setFormat(int dc, int fc, int ic, int cc, vector<string> names)10 void BnTblLine::setFormat(int dc, int fc, int ic, int lc, int bc,int cc, vector<string> names) 11 11 { 12 int nbcols = dc + fc + ic + cc ;12 int nbcols = dc + fc + ic + cc + lc + bc; 13 13 int maxName = names.size(); 14 14 if (nbcols != maxName) … … 23 23 if (ic >0) idata_ = vector<int>(fc); 24 24 if (cc >0) cdata_ = vector<string>(fc); 25 if (lc >0) ldata_ = vector<long>(lc); 26 if (bc >0) bdata_ = vector<unsigned char>(bc); 25 27 } 26 28 27 29 bool BnTblLine::sameFormat(const BnTblLine& btl) const 28 30 { 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; 30 32 else return false; 31 33 } … … 49 51 cout << " *** variables string " << endl; 50 52 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] << " "; 51 59 cout << endl; 52 60 cout << " ***************************** " << endl; … … 721 729 break; 722 730 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); 725 738 break; 726 739 case FitsDataType_char : … … 1074 1087 break; 1075 1088 case TLONG : 1076 types.push_back(FitsDataType_ int);1089 types.push_back(FitsDataType_long); 1077 1090 break; 1078 1091 case TSHORT : … … 1111 1124 break; 1112 1125 case TLONG : 1113 types.push_back(FitsDataType_ int);1126 types.push_back(FitsDataType_long); 1114 1127 break; 1115 1128 case TINT : … … 1125 1138 break; 1126 1139 case TBYTE : 1127 types.push_back(FitsDataType_char); 1128 taille_des_chaines.push_back(width); 1129 rept/=width; 1140 types.push_back(FitsDataType_byte); 1130 1141 break; 1131 1142 default : … … 1694 1705 fits_write_col(fptr_,TINT,ncol+1,NoLine+1,1,1, &ligne.idata_[k] ,&status); 1695 1706 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" ); 1696 1717 } 1697 1718 -
trunk/SophyaExt/FitsIOServer/fitsfile.h
r1354 r1359 93 93 FitsDataType_int, 94 94 FitsDataType_char, 95 FitsDataType_ASCII 95 FitsDataType_ASCII, 96 FitsDataType_long, 97 FitsDataType_byte 96 98 }; 97 99 … … 324 326 { 325 327 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); 327 329 bool sameFormat(const BnTblLine& btl) const; 328 330 … … 331 333 vector<double> ddata_; 332 334 vector<float> fdata_; 333 vector<int> idata_; 335 vector<int> idata_; 334 336 vector<string> cdata_; 335 337 vector<string> ColName_; 338 vector<long> ldata_; 339 vector<unsigned char> bdata_; 340 336 341 }; 337 342
Note:
See TracChangeset
for help on using the changeset viewer.