00001
00002
00004 #ifndef __ReadAscii__
00005 #define __ReadAscii__
00006
00007 #include "CUtils.h"
00008
00009 #define NCOL 50
00010
00011 using namespace std;
00012
00018 class ReadAscii{
00019
00020 public:
00021
00043 ReadAscii(const string afilename, const string aformat="UNKNOWN");
00044
00048 virtual ~ReadAscii(void);
00049
00057 int GetNLine(void){ return Nrow; };
00058
00062 int GetNRow(void){ return Nrow; };
00063
00067 int GetNCol(void){ return Ncol; };
00068
00076 bool GetLine(string &line, const int li);
00077
00084 string GetRow(const int li);
00085
00093 bool GetCol(vector<int> &col, const int co);
00094
00102 bool GetCol(vector<double> &col, const int co);
00103
00111 bool GetCol(vector<string> &col, const int co);
00112
00121 bool GetElement(int &element, const int li, const int co);
00122
00131 bool GetElement(double &element, const int li, const int co);
00132
00141 bool GetElement(string &element, const int li, const int co);
00142
00150 double GetColMax(const int co);
00151
00159 double GetColMin(const int co);
00160
00169 bool SetFormat(const int co, const string aformat);
00170
00176 string GetFormat(void);
00177
00184 string GetFormat(const int co);
00185
00193 bool AddRow(const string newline);
00194
00201 bool RemoveRow(const int li);
00202
00212 bool ModifyElement(const int newelement, const int li, const int co);
00213
00223 bool ModifyElement(const double newelement, const int li, const int co);
00224
00234 bool ModifyElement(const string newelement, const int li, const int co);
00235
00244 bool WriteFile(const char* filename);
00245
00254 inline bool WriteFile(const string filename){ return WriteFile(filename.c_str()); };
00255
00256 private:
00257
00258
00259 bool ExtractFormat(void);
00260 bool ExtractLines(bool knownformat);
00261 bool ExtractCol(const int li);
00262 bool GetMinMax(const int co);
00263
00264 bool status_OK;
00265 bool fixformat;
00266 string ffilename;
00267 string fformat;
00268 vector<string> Vformat;
00269 int Ncol;
00270 int Nrow;
00271 vector <string> mylines;
00272 vector <string> scol[NCOL];
00273 vector <double> dcol[NCOL];
00274 vector <int> icol[NCOL];
00275 double colmin[NCOL];
00276 double colmax[NCOL];
00277 };
00278
00279 #endif
00280
00281
00282
00283
00284
00285
00286
00287
00288