Skip to content
Snippets Groups Projects
TAsciiFile.cxx 3.27 KiB
/*****************************************************************************
 * Copyright (C) 2009-2010   this file is part of the NPTool Project         *
 *                                                                           *
 * For the licensing terms see $NPTOOL/Licence/NPTool_Licence                *
 * For the list of contributors see $NPTOOL/Licence/Contributors             *
 *****************************************************************************/

/*****************************************************************************
 * Original Author: N. de Sereville  contact address: deserevi@ipno.in2p3.fr *
 *                                                                           *
 * Creation Date  : january 2011                                             *
 * Last update    :                                                          *
 *---------------------------------------------------------------------------*
 * Decription:                                                               *
 *     This class allows to store any ascii file in a ROOT TTree.            *
 *                                                                           *
 *---------------------------------------------------------------------------*
 * Comment:                                                                  *
 *                                                                           *
 *                                                                           *
 *****************************************************************************/

// Class headers
#include "TAsciiFile.h"

// C++ headers
#include <fstream>
#include <iostream>
using namespace std;

ClassImp(TAsciiFile)


TAsciiFile::TAsciiFile()
   : TNamed()
{
}



TAsciiFile::TAsciiFile(const char* name, const char* title, const char* inputAsciiFile)
   : TNamed(name, title)
{
   ReadFile(inputAsciiFile);
}



TAsciiFile::~TAsciiFile()
{
}



void TAsciiFile::ReadFile(const char* inputAsciiFile)
{
   ifstream inputStream(inputAsciiFile);
   if (!inputStream) {
      cout << "Problem opening file " << inputAsciiFile << endl;
   }
   else {
      string line;
      while (!inputStream.eof()) {
         getline(inputStream, line);
         fLines.push_back(line);
      }
   }

   inputStream.close();
}



void TAsciiFile::Append(const char* inputAsciiFile)
{
   ReadFile(inputAsciiFile);
}


void TAsciiFile::AppendLine(const char* AsciiLine)
{
  string line = AsciiLine ;
  
  fLines.push_back(line);
}


void TAsciiFile::WriteToFile(const char* outputAsciiFile) const
{
   ofstream outputStream(outputAsciiFile);

   for (UInt_t i = 0; i < fLines.size(); i++) outputStream << fLines[i] << endl;

   outputStream.close();
}



void TAsciiFile::WriteToFile(const char* outputAsciiFile, UInt_t begin, UInt_t end) const
{
   ofstream outputStream(outputAsciiFile);

   for (UInt_t i = 0; i < fLines.size(); i++) {
      if (i < begin || i > end) continue;
      outputStream << fLines[i] << endl;
   }

   outputStream.close();
}



void TAsciiFile::Print() const
{
   for (UInt_t i = 0; i < fLines.size(); i++) cout << fLines[i] << endl;
}



void TAsciiFile::Print(UInt_t begin, UInt_t end) const
{
   for (UInt_t i = 0; i < fLines.size(); i++) {
      if (i < begin || i > end) continue;
      cout << fLines[i] << endl;
   }
}