Changeset 4023 in Sophya for trunk/SophyaExt


Ignore:
Timestamp:
Oct 2, 2011, 8:25:23 PM (14 years ago)
Author:
cmv
Message:

bintable avec elements vecteur, cmv 02/10/2011

Location:
trunk/SophyaExt/FitsIOServer
Files:
4 edited

Legend:

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

    r3772 r4023  
    349349{
    350350 ColLabel = ""; ColTUnit = ""; ColTForm = "";
    351  ColNum = -1; ColTypeCode = 0;
     351 ColNum = -1; ColTypeCode = 0; ColRepeat=0;
    352352 NBcol = 0; NBline = 0;
    353353 SetNulVal(); SetDebug(0);
     
    363363{
    364364 // Initialisation des Parametres Generaux
    365  ColLabel=collabel; ColTUnit=""; ColTForm=""; ColNum=colnum; ColTypeCode=0;
     365 ColLabel=collabel; ColTUnit=""; ColTForm=""; ColNum=colnum; ColTypeCode=0; ColRepeat=0;
    366366 NBcol = 0; NBline = 0;
    367367 SetNulVal(); SetDebug(lp);
     
    469469 ColTUnit = tunit;
    470470 ColTForm = tform;
     471 ColRepeat = repeat;
    471472
    472473 // Set the buffer for reading
     
    475476 if(DbgLevel)
    476477   cout<<"FitsABTColRd::Init Num="<<ColNum<<" Label="<<ColLabel
    477        <<" TypeCode="<<ColTypeCode<<" TUnit="<<ColTUnit<<" TForm="<<ColTForm<<endl;
     478       <<" TypeCode="<<ColTypeCode<<" TUnit="<<ColTUnit<<" TForm="<<ColTForm<<" Repeat="<<ColRepeat<<endl;
    478479 if(DbgLevel>1)
    479    cout<<"      (repeat="<<repeat<<",tscale="<<tscale<<",tzero="<<tzero
    480        <<",tdisp="<<tdisp<<")"<<endl;
     480   cout<<"      (tscale="<<tscale<<",tzero="<<tzero<<",tdisp="<<tdisp<<")"<<endl;
    481481
    482482}
     
    503503
    504504 // Compute buffer caracteristics
    505  BuffLen = (blen<=0)? 1: blen;
     505 BuffLen = (blen<=0 || ColRepeat!=1)? 1: blen;
    506506 BuffSens = bsens;
    507507 NBuffer = BuffLen;
     
    566566/////////////////////////////////////////////////
    567567/*!
    568   Read row "n" and return the value into a double
     568  Read row "n" element "nfirstel" and return the value into a double
    569569  \warning be carefull for the range: row = [0,NRows[
    570570  \return value in double
     
    576576  \endverbatim
    577577*/
    578 double FitsABTColRd::Read(LONGLONG n,bool usebuffer)
     578double FitsABTColRd::Read(LONGLONG n,long nfirstel,bool usebuffer)
    579579// Attention: n=nline [0,NBline[, cfistio veut [1,NBline]
    580580// Attention: colnum  [0,NBcol[ , cfistio veut [1,NBcol]
     581// Attention: nfirstel  [0,ColRepeat[ , cfistio veut [1,ColRepeat]
    581582{
    582583 int sta=0;
    583584 if(n<0 || n>=NBline)
    584585   throw RangeCheckError("FitsABTColRd::Read try to read outside line range\n");
    585 
    586  // Pas de bufferisation, on lit betement
    587  if(NBuffer==1 || !usebuffer) {
     586 if(nfirstel<0 || nfirstel>=ColRepeat)
     587   throw RangeCheckError("FitsABTColRd::Read try to read outside element range: nfirstel>repeat\n");
     588
     589 // Pas de bufferisation (ou repeat=1), on lit betement
     590 if(NBuffer==1 || !usebuffer || ColRepeat!=1) {
    588591   NFitsRead++;
    589592   double val;
    590    fits_read_col(GetFitsPtr(),TDOUBLE,ColNum+1,n+1,1,1,NULL,&val,NULL,&sta);
     593   fits_read_col(GetFitsPtr(),TDOUBLE,ColNum+1,n+1,nfirstel+1,1,NULL,&val,NULL,&sta);
    591594   if(sta) {
    592595     FitsOpenFile::printerror(sta);
     
    603606 }
    604607
    605  // Gestion avec bufferisation
     608 // Gestion avec bufferisation (uniquement dans le cas repeat=1)
    606609 if(!Buffer)
    607610   throw RangeCheckError("FitsABTColRd::Read: Buffer not allocated\n");
     
    669672LONGLONG FitsABTColRd::Read(LONGLONG n1,LONGLONG n2,TVector<double>& data)
    670673{
     674 if(ColRepeat>1)
     675   throw RangeCheckError("FitsABTColRd::Read TVector not-implemented for repeat>1 \n");
    671676 if(n1<0 || n1>=NBline)
    672677   throw RangeCheckError("FitsABTColRd::Read TVector bad requested 1srt line \n");
     
    693698LONGLONG FitsABTColRd::Read(LONGLONG n1,LONGLONG n2,TVector<float>& data)
    694699{
     700 if(ColRepeat>1)
     701   throw RangeCheckError("FitsABTColRd::Read TVector not-implemented for repeat>1 \n");
    695702 if(n1<0 || n1>=NBline)
    696703   throw RangeCheckError("FitsABTColRd::Read TVector bad requested 1srt line \n");
     
    717724LONGLONG FitsABTColRd::Read(LONGLONG n1,LONGLONG n2,TVector<uint_2>& data)
    718725{
     726 if(ColRepeat>1)
     727   throw RangeCheckError("FitsABTColRd::Read TVector not-implemented for repeat>1 \n");
    719728 if(n1<0 || n1>=NBline)
    720729   throw RangeCheckError("FitsABTColRd::Read TVector bad requested 1srt line \n");
     
    740749LONGLONG FitsABTColRd::Read(LONGLONG n1,LONGLONG n2,TVector<int_4>& data)
    741750{
     751 if(ColRepeat>1)
     752   throw RangeCheckError("FitsABTColRd::Read TVector not-implemented for repeat>1 \n");
    742753 if(n1<0 || n1>=NBline)
    743754   throw RangeCheckError("FitsABTColRd::Read TVector bad requested 1srt line \n");
     
    766777{
    767778#ifdef TLONGLONG
     779 if(ColRepeat>1)
     780   throw RangeCheckError("FitsABTColRd::Read TVector not-implemented for repeat>1 \n");
    768781 if(n1<0 || n1>=NBline)
    769782   throw RangeCheckError("FitsABTColRd::Read TVector bad requested 1srt line \n");
     
    792805/*!
    793806  Return the number of the first row where "val1"<=val<="val2" starting at row "rowstart"
     807  for element "nfirstel"
    794808  \verbatim
    795809  - The search is performed from "rowstart" to the end
     
    800814  \return <0 means not found
    801815*/
    802 LONGLONG FitsABTColRd::FirstRow(double val1,double val2,LONGLONG rowstart)
    803 {
     816LONGLONG FitsABTColRd::FirstRow(long nfirstel,double val1,double val2,LONGLONG rowstart)
     817{
     818 if(nfirstel<0 || nfirstel>=ColRepeat)
     819   throw RangeCheckError("FitsABTColRd::FirstRow try to read outside element range: nfirstel>repeat\n");
    804820 LONGLONG row = -1;
    805821 if(NBline==0) return row;
     
    810826 if(rowstart>=NBline) rowstart = NBline-1;
    811827 for(LONGLONG i=rowstart;i<NBline;i++) {
    812    double val = Read(i);
     828   double val = Read(i,nfirstel);
    813829   if(val<val1 || val>val2) continue;
    814830   row = i;
     
    820836
    821837/*!
    822   Return the number of the first row where val1<=val<=val2 starting at row rowstart
     838  Return the number of the last row where val1<=val<=val2 starting at row rowstart
     839  for element "nfirstel"
    823840  \return <0 means not found
    824841  \verbatim
     
    829846  \endverbatim
    830847*/
    831 LONGLONG FitsABTColRd::LastRow(double val1,double val2,LONGLONG rowstart)
    832 {
     848LONGLONG FitsABTColRd::LastRow(long nfirstel,double val1,double val2,LONGLONG rowstart)
     849{
     850 if(nfirstel<0 || nfirstel>=ColRepeat)
     851   throw RangeCheckError("FitsABTColRd::FirstRow try to read outside element range: nfirstel>repeat\n");
    833852 LONGLONG row = -1;
    834853 if(NBline==0) return row;
     
    838857 if(rowstart<0 || rowstart>=NBline) rowstart = NBline-1;
    839858 for(LONGLONG i=rowstart;i>=0;i--) {
    840    double val = Read(i);
     859   double val = Read(i,nfirstel);
    841860   if(val<val1 || val>val2) continue;
    842861   row = i;
     
    855874 os<<"\n... "<<FileName()<<"["<<HDU()<<"/"<<NHDU()<<" type="<<HDUType()<<"]"
    856875   <<"\n... Label["<<ColNum<<"]="<<ColLabel<<" TypeCode="<<ColTypeCode
    857    <<" TUnit="<<ColTUnit<<" TForm="<<ColTForm
     876   <<" TUnit="<<ColTUnit<<" TForm="<<ColTForm<<" Repeat="<<ColRepeat
    858877   <<endl;
    859878}
     
    9831002{
    9841003 // Initialisation des Parametres Generaux
    985  ColLabel.resize(0); ColTUnit.resize(0); ColTForm.resize(0); ColTypeCode.resize(0);
     1004 ColLabel.resize(0); ColTUnit.resize(0); ColTForm.resize(0); ColTypeCode.resize(0); ColRepeat.resize(0);
    9861005 NBcol = 0; NBline = 0;
    9871006 SetNulVal(); SetDebug(lp);
     
    10771096   ColTUnit.push_back(tunit);
    10781097   ColTForm.push_back(tform);
     1098   ColRepeat.push_back(repeat);
    10791099   // fill the default buffer limits at init
    10801100   LineDeb.push_back(-1);
     
    10831103   if(DbgLevel)
    10841104     cout<<"FitsABTColRd1F::Init Num="<<ColNum<<" Label="<<ColLabel[ColNum]
    1085          <<" TypeCode="<<ColTypeCode[ColNum]<<" TUnit="<<ColTUnit[ColNum]<<" TForm="<<ColTForm[ColNum]<<endl;
     1105         <<" TypeCode="<<ColTypeCode[ColNum]<<" TUnit="<<ColTUnit[ColNum]<<" TForm="<<ColTForm[ColNum]<<" Repeat="<<ColRepeat[ColNum]<<endl;
    10861106   if(DbgLevel>1)
    1087      cout<<"      (repeat="<<repeat<<",tscale="<<tscale<<",tzero="<<tzero
    1088          <<",tdisp="<<tdisp<<")"<<endl;
     1107     cout<<"      (tscale="<<tscale<<",tzero="<<tzero<<",tdisp="<<tdisp<<")"<<endl;
    10891108 }   // ***** ColNum
    10901109
     
    11981217/////////////////////////////////////////////////
    11991218/*!
    1200   Read row "n" of column "ColNum" and return the value into a double
     1219  Read row "n" element "nfirstel" of column "ColNum" and return the value into a double
    12011220  \warning be carefull for the range: row = [0,NRows[
    12021221  \return value in double
     
    12081227  \endverbatim
    12091228*/
    1210 double FitsABTColRd1F::Read(int ColNum,LONGLONG n,bool usebuffer)
     1229double FitsABTColRd1F::Read(int ColNum,LONGLONG n,long nfirstel,bool usebuffer)
    12111230// Attention: n=nline [0,NBline[, cfistio veut [1,NBline]
    12121231// Attention: colnum  [0,NBcol[ , cfistio veut [1,NBcol]
     1232// Attention: nfirstel  [0,ColRepeat[ , cfistio veut [1,ColRepeat]
    12131233{
    12141234 int sta=0;
     
    12171237 if(n<0 || n>=NBline)
    12181238   throw RangeCheckError("FitsABTColRd1F::Read try to read outside line range\n");
    1219 
    1220  // Pas de bufferisation, on lit betement
    1221  if(NBuffer==1 || !usebuffer) {
     1239 if(nfirstel<0 || nfirstel>=ColRepeat[ColNum])
     1240   throw RangeCheckError("FitsABTColRd1F::Read try to read outside element range: nfirstel>repeat\n");
     1241
     1242 // Pas de bufferisation (ou repeat=1), on lit betement
     1243 if(NBuffer==1 || !usebuffer || ColRepeat[ColNum]!=1) {
    12221244   double val;
    1223    fits_read_col(GetFitsPtr(),TDOUBLE,ColNum+1,n+1,1,1,NULL,&val,NULL,&sta);
     1245   fits_read_col(GetFitsPtr(),TDOUBLE,ColNum+1,n+1,nfirstel+1,1,NULL,&val,NULL,&sta);
    12241246   if(sta) {
    12251247     FitsOpenFile::printerror(sta);
     
    12361258 }
    12371259
    1238  // Gestion avec bufferisation
     1260 // Gestion avec bufferisation (uniquement dans le cas repeat=1)
    12391261 if(!Buffer)
    12401262   throw RangeCheckError("FitsABTColRd1F::Read: Buffer not allocated\n");
  • trunk/SophyaExt/FitsIOServer/fabtcolread.h

    r3772 r4023  
    8383  string    ReadKeyS(const char *keyname);
    8484
    85   double Read(LONGLONG n,bool usebuffer=true);
     85  double Read(LONGLONG n,long nfirstel,bool usebuffer=true);
     86  inline double Read(LONGLONG n,bool usebuffer=true) {return Read(n,0,usebuffer);}
    8687
    8788  LONGLONG Read(LONGLONG n1,LONGLONG n2,TVector<uint_2>& data);
     
    9293
    9394  //! return the value of the first row
    94   double ReadFirstRow(bool usebuffer=false)
    95                     {return Read(0,usebuffer);}
     95  double ReadFirstRow(long nfirstel,bool usebuffer=false) {return Read(0,nfirstel,usebuffer);}
     96  double ReadFirstRow(bool usebuffer=false) {return Read(0,usebuffer);}
    9697  //! return the value of the last row
    97   double ReadLastRow(bool usebuffer=false)
    98                     {return Read(NBline-1,usebuffer);}
    99 
    100   LONGLONG FirstRow(double val1,double val2,LONGLONG rowstart=-1);
    101   LONGLONG LastRow(double val1,double val2,LONGLONG rowstart=-1);
     98  double ReadLastRow(long nfirstel,bool usebuffer=false) {return Read(NBline-1,nfirstel,usebuffer);}
     99  double ReadLastRow(bool usebuffer=false) {return Read(NBline-1,usebuffer);}
     100
     101  LONGLONG FirstRow(long nfirstel,double val1,double val2,LONGLONG rowstart=-1);
     102  inline LONGLONG FirstRow(double val1,double val2,LONGLONG rowstart=-1)
     103                          {return FirstRow(0,val1,val2,rowstart);}
     104  LONGLONG LastRow(long nfirstel,double val1,double val2,LONGLONG rowstart=-1);
     105  inline LONGLONG LastRow(double val1,double val2,LONGLONG rowstart=-1)
     106                          {return LastRow(0,val1,val2,rowstart);}
    102107
    103108  //! Set debug level
     
    135140  //! Get the columns fits tform that is read
    136141  inline string GetColTForm(void) const {return ColTForm;}
     142  //! Get the columns fits repeat that is read
     143  inline long GetColRepeat(void) const {return ColRepeat;}
    137144  //! Get the read requested buffer length
    138145  inline long GetBLen(void) const {return BuffLen;}
     
    155162  string ColLabel,ColTUnit,ColTForm;
    156163  int ColNum,ColTypeCode,NBcol;
     164  long ColRepeat;
    157165  LONGLONG NBline;
    158166
     
    201209  string    ReadKeyS(const char *keyname);
    202210
    203   double Read(int ColNum,LONGLONG n,bool usebuffer=true);
     211  double Read(int ColNum,LONGLONG n,long nfirstel,bool usebuffer=true);
     212  inline double Read(int ColNum,LONGLONG n,bool usebuffer=true) {return Read(ColNum,n,0,usebuffer);}
    204213  int GetColNum(const char *colname);
    205214
     
    240249  inline string GetColTForm(int ColNum) const
    241250         {if(ColNum<0 || ColNum>=NBcol) return string(""); else return ColTForm[ColNum];}
     251  //! Get the columns fits repeat that is read
     252  inline long GetColRepeat(int ColNum) const
     253         {if(ColNum<0 || ColNum>=NBcol) return -999; else return ColRepeat[ColNum];}
    242254  //! Get the read requested buffer length
    243255  inline long GetBLen(void) const {return BuffLen;}
     
    260272  vector<string> ColLabel,ColTUnit,ColTForm;
    261273  vector<int> ColTypeCode;
     274  vector<long> ColRepeat;
    262275  int NBcol;
    263276  LONGLONG NBline;
  • trunk/SophyaExt/FitsIOServer/fabtwriter.cc

    r3668 r4023  
    532532  \param col : column number [0,ncol[
    533533  \param row : row number    [0,nrow[
     534  \param nfirstel : element number    [0,repeat[
    534535  \param val : value to be written
    535536  \warning that routine write a SHORT value into column "col"
     
    539540  WARNING: suppose that the column has be defined to be TSHORT
    540541           and suppose that you wanted to write a double value "val"
    541    - If you write dummy.Write(col,row,(short)(val))
    542        the Write(int,long,short) routine is called and
     542   - If you write dummy.Write(col,row,nfirstel,(short)(val))
     543       the Write(int,long,long,short) routine is called and
    543544       the cast is performed by the C++ language.
    544    - If you write dummy.Write(col,row,val) where val is double
    545        the Write(int,long,double) routine is called and
     545   - If you write dummy.Write(col,row,nfirstel,val) where val is double
     546       the Write(int,long,long,double) routine is called and
    546547       the cast is performed by the cfistio package.
    547548  \endverbatim
     
    549550
    550551/*! Write signed char (1 Byte) data to FITS file (see below) */
    551 void FitsABTWriter::Write(int col,LONGLONG row,int_1 val)
     552void FitsABTWriter::Write(int col,LONGLONG row,long nfirstel,int_1 val)
    552553{
    553554#ifdef TSBYTE
    554555  if(FirstTime) createtbl();
    555556  int sta=0;
    556   if(fits_write_col(FitsPtr,TSBYTE,col+1,row+1,1,1,&val,&sta))
     557  if(fits_write_col(FitsPtr,TSBYTE,col+1,row+1,nfirstel+1,1,&val,&sta))
    557558    printerrorwrite("signed char",col,row,sta);
    558559#else
     
    562563
    563564/*! Write unsigned char (1 Byte) data to FITS file (see below) */
    564 void FitsABTWriter::Write(int col,LONGLONG row,uint_1 val)
    565 {
    566   if(FirstTime) createtbl();
    567   int sta=0;
    568   if(fits_write_col(FitsPtr,TBYTE,col+1,row+1,1,1,&val,&sta))
     565void FitsABTWriter::Write(int col,LONGLONG row,long nfirstel,uint_1 val)
     566{
     567  if(FirstTime) createtbl();
     568  int sta=0;
     569  if(fits_write_col(FitsPtr,TBYTE,col+1,row+1,nfirstel+1,1,&val,&sta))
    569570    printerrorwrite("unsigned char",col,row,sta);
    570571}
    571572
    572573/*! Write short (2 Bytes) data to FITS file (see below) */
    573 void FitsABTWriter::Write(int col,LONGLONG row,int_2 val)
    574 {
    575   if(FirstTime) createtbl();
    576   int sta=0;
    577   if(fits_write_col(FitsPtr,TSHORT,col+1,row+1,1,1,&val,&sta))
     574void FitsABTWriter::Write(int col,LONGLONG row,long nfirstel,int_2 val)
     575{
     576  if(FirstTime) createtbl();
     577  int sta=0;
     578  if(fits_write_col(FitsPtr,TSHORT,col+1,row+1,nfirstel+1,1,&val,&sta))
    578579    printerrorwrite("short",col,row,sta);
    579580}
    580581
    581582/*! Write unsigned short (2 Bytes) data to FITS file (see below) */
    582 void FitsABTWriter::Write(int col,LONGLONG row,uint_2 val)
    583 {
    584   if(FirstTime) createtbl();
    585   int sta=0;
    586   if(fits_write_col(FitsPtr,TUSHORT,col+1,row+1,1,1,&val,&sta))
     583void FitsABTWriter::Write(int col,LONGLONG row,long nfirstel,uint_2 val)
     584{
     585  if(FirstTime) createtbl();
     586  int sta=0;
     587  if(fits_write_col(FitsPtr,TUSHORT,col+1,row+1,nfirstel+1,1,&val,&sta))
    587588    printerrorwrite("unsigned short",col,row,sta);
    588589}
    589590
    590591/*! Write long (4 Bytes) data to FITS file (see below) */
    591 void FitsABTWriter::Write(int col,LONGLONG row,int_4 val)
     592void FitsABTWriter::Write(int col,LONGLONG row,long nfirstel,int_4 val)
    592593{
    593594  if(FirstTime) createtbl();
     
    595596  // Bug ou inconsistence cfitsio sur machine ou long=8Bytes ?
    596597  int T = (sizeof(long)==4) ? TLONG: TINT;
    597   if(fits_write_col(FitsPtr,T,col+1,row+1,1,1,&val,&sta))
     598  if(fits_write_col(FitsPtr,T,col+1,row+1,nfirstel+1,1,&val,&sta))
    598599    printerrorwrite("long",col,row,sta);
    599600}
    600601
    601602/*! Write unsigned long (4 Bytes) data to FITS file (see below) */
    602 void FitsABTWriter::Write(int col,LONGLONG row,uint_4 val)
     603void FitsABTWriter::Write(int col,LONGLONG row,long nfirstel,uint_4 val)
    603604{
    604605  if(FirstTime) createtbl();
     
    606607  // Bug ou inconsistence cfitsio sur machine ou long=8Bytes ?
    607608  int T = (sizeof(unsigned long)==4) ? TULONG: TUINT;
    608   if(fits_write_col(FitsPtr,T,col+1,row+1,1,1,&val,&sta))
     609  if(fits_write_col(FitsPtr,T,col+1,row+1,nfirstel+1,1,&val,&sta))
    609610    printerrorwrite("long",col,row,sta);
    610611}
    611612
    612613/*! Write long long (8 Bytes) data to FITS file (see below) */
    613 void FitsABTWriter::Write(int col,LONGLONG row,int_8 val)
     614void FitsABTWriter::Write(int col,LONGLONG row,long nfirstel,int_8 val)
    614615{
    615616#ifdef TLONGLONG
    616617  if(FirstTime) createtbl();
    617618  int sta=0;
    618   if(fits_write_col(FitsPtr,TLONGLONG,col+1,row+1,1,1,&val,&sta))
     619  if(fits_write_col(FitsPtr,TLONGLONG,col+1,row+1,nfirstel+1,1,&val,&sta))
    619620    printerrorwrite("long long",col,row,sta);
    620621#else
     
    624625
    625626/*! Write float data to FITS file (see below) */
    626 void FitsABTWriter::Write(int col,LONGLONG row,float val)
    627 {
    628   if(FirstTime) createtbl();
    629   int sta=0;
    630   if(fits_write_col(FitsPtr,TFLOAT,col+1,row+1,1,1,&val,&sta))
     627void FitsABTWriter::Write(int col,LONGLONG row,long nfirstel,float val)
     628{
     629  if(FirstTime) createtbl();
     630  int sta=0;
     631  if(fits_write_col(FitsPtr,TFLOAT,col+1,row+1,nfirstel+1,1,&val,&sta))
    631632    printerrorwrite("float",col,row,sta);
    632633}
    633634
    634635/*! Write double data to FITS file (see below) */
    635 void FitsABTWriter::Write(int col,LONGLONG row,double val)
    636 {
    637   if(FirstTime) createtbl();
    638   int sta=0;
    639   if(fits_write_col(FitsPtr,TDOUBLE,col+1,row+1,1,1,&val,&sta))
     636void FitsABTWriter::Write(int col,LONGLONG row,long nfirstel,double val)
     637{
     638  if(FirstTime) createtbl();
     639  int sta=0;
     640  if(fits_write_col(FitsPtr,TDOUBLE,col+1,row+1,nfirstel+1,1,&val,&sta))
    640641    printerrorwrite("double",col,row,sta);
    641642}
     
    649650  \return "N" = number of the next row to be written,
    650651      that is "N-1" is the number of the last row written.
     652  \warning : be carefull if "repeat" not egal to 1
    651653*/
    652654
  • trunk/SophyaExt/FitsIOServer/fabtwriter.h

    r3668 r4023  
    104104     {return addcol(label,tform,tunit,datatype);}
    105105
    106   void Write(int col,LONGLONG row,int_1 val);
    107   void Write(int col,LONGLONG row,uint_1 val);
    108   void Write(int col,LONGLONG row,int_2 val);
    109   void Write(int col,LONGLONG row,uint_2 val);
    110   void Write(int col,LONGLONG row,int_4 val);
    111   void Write(int col,LONGLONG row,uint_4 val);
    112   void Write(int col,LONGLONG row,int_8 val);
    113   void Write(int col,LONGLONG row,float val);
    114   void Write(int col,LONGLONG row,double val);
     106  void Write(int col,LONGLONG row,long nfirstel,int_1 val);
     107  void Write(int col,LONGLONG row,long nfirstel,uint_1 val);
     108  void Write(int col,LONGLONG row,long nfirstel,int_2 val);
     109  void Write(int col,LONGLONG row,long nfirstel,uint_2 val);
     110  void Write(int col,LONGLONG row,long nfirstel,int_4 val);
     111  void Write(int col,LONGLONG row,long nfirstel,uint_4 val);
     112  void Write(int col,LONGLONG row,long nfirstel,int_8 val);
     113  void Write(int col,LONGLONG row,long nfirstel,float val);
     114  void Write(int col,LONGLONG row,long nfirstel,double val);
     115
     116  inline void Write(int col,LONGLONG row,int_1 val) {Write(col,row,0,val);}
     117  inline void Write(int col,LONGLONG row,uint_1 val) {Write(col,row,0,val);}
     118  inline void Write(int col,LONGLONG row,int_2 val) {Write(col,row,0,val);}
     119  inline void Write(int col,LONGLONG row,uint_2 val) {Write(col,row,0,val);}
     120  inline void Write(int col,LONGLONG row,int_4 val) {Write(col,row,0,val);}
     121  inline void Write(int col,LONGLONG row,uint_4 val) {Write(col,row,0,val);}
     122  inline void Write(int col,LONGLONG row,int_8 val) {Write(col,row,0,val);}
     123  inline void Write(int col,LONGLONG row,float val) {Write(col,row,0,val);}
     124  inline void Write(int col,LONGLONG row,double val) {Write(col,row,0,val);}
     125
    115126  LONGLONG Write(int col,LONGLONG row,TVector<uint_2>& val);
    116127  LONGLONG Write(int col,LONGLONG row,TVector<int_4>& val);
Note: See TracChangeset for help on using the changeset viewer.