Changeset 2792 in Sophya for trunk/SophyaPI/PIext/servnobjm.cc


Ignore:
Timestamp:
Jun 1, 2005, 3:24:48 PM (20 years ago)
Author:
cmv
Message:

spiapp cmd "newdt" pour creer une DataTable
spiapp cmd "n/read" modifier pour remplir aussi des DataTable (option -dt)
NtFromASCIIFile modifier pour remplir aussi des DataTable

mais le decodage FillFromASCII de la classe DataTAble est encore a faire

cmv 01/06/2005

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaPI/PIext/servnobjm.cc

    r2781 r2792  
    3434#include "histos.h"
    3535#include "histos2.h"
     36#include "hisprof.h"
    3637#include "ntuple.h"
    37 #include "hisprof.h"
     38#include "datatable.h"
    3839
    3940#include "piyfxdrw.h"
     
    823824/* --Methode-- */
    824825void Services2NObjMgr::NtFromASCIIFile(string& nom,string& filename,double def_val)
    825 //      Pour remplir un ntuple "nom" existant a partir du fichier
     826//      Pour remplir un NTuple/DataTable "nom" existant a partir du fichier
    826827//      ASCII table "filename". Si il y a plus de variables dans le
    827828//      ntuple que dans le fichier "filename",
    828 //      les sur-numeraires sont mises a "def_val" par defaut.
     829//      les sur-numeraires numeriques sont mises a "def_val" par defaut.
    829830{
    830831AnyDataObj* mobj = MyObjMgr()->GetObj(nom);
    831 if(mobj == NULL)
    832   {cout<<"NtFromASCIIFile() Error, object "<<nom<<" not existing"<<endl;
    833    return;}
    834 if(typeid(*mobj) != typeid(NTuple))
    835   {cout<<"NtFromASCIIFile() Error, object "<<nom<<" not an NTuple"<<endl;
    836    return;}
    837 if (!mImgapp)  return;
    838 
    839 NTuple* nt = (NTuple*) mobj;
    840 nt->FillFromASCIIFile(filename, def_val);
     832if(mobj == NULL) {
     833  cout<<"NtFromASCIIFile() Error, object "<<nom<<" not existing"<<endl;
     834  return;
     835}
     836
     837NTuple* nt = NULL;
     838DataTable* dt = NULL;
     839if(typeid(*mobj) == typeid(NTuple))         nt = (NTuple*) mobj;
     840else if(typeid(*mobj) == typeid(DataTable)) dt = (DataTable*) mobj;
     841
     842if(nt==NULL && dt==NULL) {
     843  cout<<"NtFromASCIIFile() Error, object "<<nom<<" not an NTuple nor a DataTable"<<endl;
     844  return;
     845}
     846if (!mImgapp)  return;
     847
     848if(nt)      nt->FillFromASCIIFile(filename, def_val);
     849else if(dt) dt->FillFromASCIIFile(filename);
    841850return;
    842851}
Note: See TracChangeset for help on using the changeset viewer.