Index: trunk/SophyaLib/HiStats/ntuple.cc
===================================================================
--- trunk/SophyaLib/HiStats/ntuple.cc	(revision 835)
+++ trunk/SophyaLib/HiStats/ntuple.cc	(revision 846)
@@ -207,4 +207,17 @@
 }
 
+/* --Methode-- */
+//++
+void NTuple::SetVal(int n, int k, float value)  
+//
+//	initialise la valeur de la variable `k' de l'evenement `n'.
+//--
+{
+if (n >= mNEnt)   return;
+if ( (k < 0) || (k >= mNVar) )    return;
+int numb = n/mBlk;
+int offb = n-numb*mBlk;
+*(mPtr[numb]+offb*mNVar+k) = value;
+}
 
 /* --Methode-- */
@@ -538,5 +551,5 @@
 
 
-/* --Methode-- */
+/* --Methode-- */ 
 //++
 void   ObjFileIO<NTuple>::WriteSelf(POutPersist& s)  const
@@ -602,4 +615,5 @@
 }
 
+
 #ifdef __CXX_PRAGMA_TEMPLATES__
 #pragma define_template ObjFileIO<NTuple>
Index: trunk/SophyaLib/HiStats/ntuple.h
===================================================================
--- trunk/SophyaLib/HiStats/ntuple.h	(revision 835)
+++ trunk/SophyaLib/HiStats/ntuple.h	(revision 846)
@@ -16,8 +16,11 @@
 #include "ppersist.h"
 #include "dvlist.h"
+#include "fitsfile.h" 
 
 namespace SOPHYA {
 
 class NTuple : public AnyDataObj , public NTupleInterface {
+
+  friend class FITS_NTuple;
 public:
 //  enum {classId = ClassId_NTuple };
@@ -77,4 +80,5 @@
 private:
   void  Clean();
+  void SetVal(int n, int k, float value)   ;
 
   int_4 mNVar, mNEnt, mBlk, mNBlk;
@@ -100,4 +104,6 @@
 // ObjFileIO<NTuple>
 
+
+
 #ifdef __MWERKS__
 __MSL_FIX_ITERATORS__(r_4*);
Index: trunk/SophyaLib/HiStats/xntuple.cc
===================================================================
--- trunk/SophyaLib/HiStats/xntuple.cc	(revision 835)
+++ trunk/SophyaLib/HiStats/xntuple.cc	(revision 846)
@@ -927,4 +927,71 @@
   } 
 }
+////////////// methodes supplementaires pour leserveur de fichiers fits//////
+//
+// (protected)
+//
+void XNTuple::SetDVal(int i, int k, double v)  
+{
+    if( i<0 || i>=mNEnt || k<0 || k>=mD ) 
+	THROW(rangeCheckErr) ; 
+    
+    // Bloc ? 
+    int blk = (int)(i/mBlkSz) ; 
+    int off = i%mBlkSz ; 
+    
+    // bloc swappe ? 
+    if( ptr[blk]->sw ) { get_blk(blk) ; swap() ; } 
+    ptr[blk]->ddata[off*mD+k]=v ; 
+}
+void XNTuple::SetFVal(int i, int k, float v) 
+{
+    if( i<0 || i>=mNEnt || k<mD || k>=(mD+mF) ) 
+	THROW(rangeCheckErr) ; 
+    k -= mD ; 
+    
+    // Bloc ? 
+    int blk = (int)(i/mBlkSz) ; 
+    int off = i%mBlkSz ; 
+    
+    // bloc swappe ? 
+    if( ptr[blk]->sw ) { get_blk(blk) ; swap() ; } 
+    ptr[blk]->fdata[off*mF+k]=v ; 
+}
+void  XNTuple::SetIVal(int i, int k, int v)  
+{
+    if( i<0 || i>=mNEnt || k<(mD+mF) || k>=(mD+mF+mI) )
+	THROW(rangeCheckErr) ; 
+    k -= (mD+mF) ;  
+
+    // Bloc ? 
+    int blk = (int)(i/mBlkSz) ; 
+    int off = i%mBlkSz ; 
+    
+    // bloc swappe ? 
+    if( ptr[blk]->sw ) { get_blk(blk) ; swap() ; } 
+
+    ptr[blk]->idata[off*mI+k]=v ; 
+}
+void  XNTuple::SetSVal(int i, int k, char* v)  
+{
+    if( i<0 || i>=mNEnt || k<(mD+mF+mI) || k>=(mD+mF+mI+mS) )
+	THROW(rangeCheckErr) ; 
+    k -= (mD+mF+mI) ; 
+    
+    // Bloc ? 
+    int blk = (int)(i/mBlkSz) ; 
+    int off = i%mBlkSz ; 
+    
+    // bloc swappe ? 
+    if( ptr[blk]->sw ) { get_blk(blk) ; swap() ; } 
+    
+    // copie de la chaine 
+    	strncpy(ptr[blk]->sdata + (off*mS+k)*(mStrSz+1),v, mStrSz+1) ;   
+}
+
+
+
+
+
 
 #ifdef __CXX_PRAGMA_TEMPLATES__
Index: trunk/SophyaLib/HiStats/xntuple.h
===================================================================
--- trunk/SophyaLib/HiStats/xntuple.h	(revision 835)
+++ trunk/SophyaLib/HiStats/xntuple.h	(revision 846)
@@ -20,5 +20,5 @@
 #include "ppersist.h"
 #include "dvlist.h"
-
+#include "fitsfile.h"
 
 
@@ -105,6 +105,16 @@
 //  Pour la gestion de persistance
     friend class ObjFileIO<XNTuple> ;
-   
+    friend class FITS_XNTuple;
+
+
 private:
+
+  // pour la persistance sur fichiers fits
+    void    SetDVal(int i, int k, double v);  
+    void    SetFVal(int i, int k, float v); 
+    void    SetIVal(int i, int k, int v);  
+    void    SetSVal(int i, int k, char* v);  
+
+
     void    clean();    // remet tout a zero 
     void    swap() const ;    // swappe le + ancien blk en memoire 
@@ -160,5 +170,4 @@
 // Classe pour la gestion de persistance
 // ObjFileIO<XNTuple>
-	
 } // namespace SOPHYA
 
