00001 #ifndef INDII_ML_DATA_TEXTFILEReader_HPP
00002 #define INDII_ML_DATA_TEXTFILEReader_HPP
00003
00004 #include "Reader.hpp"
00005
00006 #include "../aux/vector.hpp"
00007 #include "../aux/matrix.hpp"
00008
00009 #include <sstream>
00010
00011 namespace indii {
00012 namespace ml {
00013 namespace data {
00014
00015
00016
00017
00018
00019
00020
00021
00022 class TextFileReader : public Reader {
00023 public:
00024
00025
00026
00027
00028
00029
00030 TextFileReader(std::istream* in);
00031
00032
00033
00034
00035
00036
00037
00038 TextFileReader(const std::string& file);
00039
00040
00041
00042
00043
00044
00045
00046
00047 TextFileReader(std::istream* in, unsigned int col);
00048
00049
00050
00051
00052
00053
00054
00055
00056 TextFileReader(const std::string& file, unsigned int col);
00057
00058
00059
00060
00061
00062
00063
00064
00065 TextFileReader(std::istream* in, const std::vector<unsigned int>& cols);
00066
00067
00068
00069
00070
00071
00072
00073
00074 TextFileReader(const std::string& file,
00075 const std::vector<unsigned int>& cols);
00076
00077
00078
00079
00080 ~TextFileReader();
00081
00082 virtual unsigned int read(double* into);
00083
00084 virtual unsigned int read(indii::ml::aux::vector* into);
00085
00086 virtual unsigned int read(indii::ml::aux::matrix* into);
00087
00088 virtual unsigned int read(indii::ml::aux::symmetric_matrix* into);
00089
00090 private:
00091
00092
00093
00094 std::vector<double> values;
00095
00096
00097
00098
00099 unsigned int nextIndex;
00100
00101
00102
00103
00104 void nextLine();
00105
00106 };
00107
00108 }
00109 }
00110 }
00111
00112 #endif